CodeBlanks Logo Icon CodeBlanks

use

use ile modüldeki isimleri içe aktarırsın.

use

use, bir yolu kapsama alarak uzun yazımı kısaltır. Gelenek: fonksiyonlar için üst modülü, türler için türün kendisini almak:

use std::collections::HashMap;     // tür: kendisi
use sekil::kare;                   // fonksiyon: üst modül

let m: HashMap<&str, i32> = HashMap::new();
let a = kare::alan(3.0);           // nereden geldiği belli

Ad çakışmasında as ile yeniden adlandırılır: use sekil::daire::alan as daire_alan;.

İç içe yollar

Aynı kökten birden çok öğe tek satırda alınabilir:

use std::collections::{BTreeMap, HashMap, HashSet};
use std::fmt::{self, Display};

mod sekil {
    pub mod daire {
        pub fn alan(r: f64) -> f64 { std::f64::consts::PI * r * r }
    }
    pub mod kare {
        pub fn alan(a: f64) -> f64 { a * a }
    }
}

use bildirimi yalnızca yazıldığı kapsamda geçerlidir; bir modülün içinde kullanılacaksa o modülde ayrıca yazılmalıdır.

Uygulama Kısa yollar

Yukarıdaki sekil modül ağacını yaz. daire::alan'ı daire_alan adıyla, kare modülünü ise kendi adıyla use et. daire_alan(1.0) ve kare::alan(3.0) sonuçlarını {:.2} ile boşlukla yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
mod sekil {
    pub mod daire {
        pub fn alan(r: f64) -> f64 {
            std::f64::consts::PI * r * r
        }
    }
    pub mod kare {
        pub fn alan(a: f64) -> f64 {
            a * a
        }
    }
}

use sekil::daire::alan as daire_alan;
use sekil::kare;

fn main() {
    println!("{:.2} {:.2}", daire_alan(1.0), kare::alan(3.0));
}

Beklenen çıktı

3.14 9.00

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>use std::io::{self, Write};</code> neyi kapsama alır?

  • Derlenmez
  • io modülünü ve Write trait'ini Doğru cevap
  • Yalnızca Write'ı
  • io içindeki her şeyi

Açıklama: Süslü parantez birden çok yolu birleştirir; self o modülün kendisidir. Tümünü almak için io::* yazılır (glob), ama genelde önerilmez.

2 Yeniden adlandır

Soru
use sekil::daire::alan ____ daire_alan;
Cevap
use sekil::daire::alan as daire_alan;

Açıklama: as, kapsama alınan öğeye yeni bir ad verir.

3 use bildirimi ve etkisi

Kavram Anlamı
use sekil::kare; kare::alan yazılır
use sekil::daire::alan as daire_alan; daire_alan(..)
use std::io::{self, Write}; io ve Write
use std::io::*; Glob içe aktarma

Orta seviye bölümündeki tüm dersler