関連

FromIntoは関連性のある型です。

From

From<T>は、struct Uに対して実装するとUTへ変換できるようになります。例えばStringが持つ::fromによってStringな値を作るのは親しみのある例です。これはimpl<'_> From<&'_ str> for Stringのように定義されています。

String::from("str");

上記は、結果どうなるかさえ分かれば以下のようにも書き換えられます。

let _s: String = From::from("str");

Into

From<T>が実装される時、自動でInto<U>が実装されます。

impl Into for T
where
  U: From, 

これは少し分かりづらいのでT&'_ strに置き換えてみます。

impl<'_> Into> for &'_ str  

これは「&'_ strからFrom<&'_ str>を実装してる型に変換できるよ」という意味になります。

&strに対して::intoを呼んでみます。

let _s: String = "str".into();

その時メソッドの中はこのような形で実行されます。

let _s: String = From::<&str>::from("str");

上記で見たようにimpl<'_> From<&'_ str> for Stringが実装されてるのでStringへ変換されます。

JavaScript で飯食べたい歴約 5 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log