use
use
の通常パターン
use embedded_hal::delay::DelayNs;
単純に省略しているパターンです。
こうすることでembedded_hal::delay::DelayNs
はDelayNs
で呼び出し可能になります。
use
の*
パターン
*
を最後につけるとそれ以下のmod(モジュール)や関数を呼び出せるようになります。
use defmt::*;
イメージで説明すると、crate_a
の下にモジュール(m1)
があり、m1
内に関数func3
があった場合、それらが省略できるという意味です。
crate_a
├── m1
└── func2
use crate_a::*;
fn main(){
m1::func3(); // crate_a::M1::func3としなくてよい
func2(); // crate_a::func2()としなくて良い
}
as
use rp2040_hal as hal;
as
は、as
の前のクレート名を変更する機能を持っています。この文だとrp2040_hal
からhal
にクレート名を変更しています。
use
のas _
パターン
use defmt_rtt as _;
use panic_probe as _;
これは、クレートをmain.rsに取り込んだ後に、as _
でクレート名を_
に変換することで、main.rsで直接呼び出しをできないようにしています。(Underscore Imports)
defmt_rtt
の例で説明すると、defmt_rtt
はdefmt
をrttとして利用する設定にし、その後にas _
をすることでmain.rsで直接参照できなくなるのでmain.rsに悪影響を与えなくなります。