【Rust】From 和 Into


環境

  • Rust 1.56.0
  • VSCode 1.60.2

概念

參考:https://doc.rust-lang.org/stable/rust-by-example/conversion/from_into.html

基礎類型可以通過 as 關鍵字進行轉換,如果是自定義類型,則通過 From 和 Into 進行轉換。
這兩個是 trait,可以理解為其它編程語言中的接口,他們是相關聯的。

示例

From

use std::convert::From;

#[derive(Debug)]
struct Number {
    value: i32,
}

impl From<i32> for Number {
    fn from(item: i32) -> Self {
        Number { value: item }
    }
}

fn main() {
    let num = Number::from(30);
    println!("My number is {:?}", num);
}

Into

如果實現了 From,則自動獲得了 Into,不過需要手動指明類型。

use std::convert::From;

#[derive(Debug)]
struct Number {
    value: i32,
}

impl From<i32> for Number {
    fn from(item: i32) -> Self {
        Number { value: item }
    }
}

fn main() {
    let int = 5;
    let num: Number = int.into();
    println!("My number is {:?}", num);
}

總結

了解了 Rust 中的 From 和 Into trait,用來進行自定義類型轉換。

附錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM