generated at
Rustのuse
module内のアイテムを現在のスコープに持ち込むために使う
TSでの import { hoge } from 'hoge' に相当

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する
以下はほぼ同じ意味
1.rs
use std::io; use std::io::{Write};
2.rs
use std::io::{self, Write};
1.rs の簡潔な書き方としての、 2.rs のようなもの
コード内では、
rs
io::stdout().write_all(b"hello").unwrap();
みたいにして、 io::なんか みたいにしてmoduleにアクセスできる
以下も同じ意味
3.rs
use std::io;
4.rs
use std::io::{self};
4.rs は冗長な書き方をしてるだけ





ただし、標準libraryである場合は、わざわざ mod std と書く必要がない
mod std と明示的に書かずとも、 use std::hoge できる
rs
use std::fs; use std::path::Path;


可読性が下がるとのこと、まあそうかも