Rustのuse
module内のアイテムを現在のスコープに持ち込むために使う
TSでのimport { hoge } from 'hoge'に相当
例
code:main.rs
mod my_module;
use my_module::greet;
fn main() {
greet();
}
useすることでmy_module::greet()ではなくgreet()として呼び出せている
self
例えば、use std::io::{self}と書いた時、std::io module全体を現在のスコープにimportする
以下はほぼ同じ意味
code:1.rs
use std::io;
use std::io::{Write};
code:2.rs
use std::io::{self, Write};
1.rsの簡潔な書き方としての、2.rsのようなもの
コード内では、
code:rs
io::stdout().write_all(b"hello").unwrap();
みたいにして、io::なんかみたいにしてmoduleにアクセスできる
以下も同じ意味
code:3.rs
use std::io;
code:4.rs
use std::io::{self};
4.rsは冗長な書き方をしてるだけ
ただし、標準libraryである場合は、わざわざmod stdと書く必要がない
mod stdと明示的に書かずとも、use std::hogeできる
code:rs
use std::fs;
use std::path::Path;