stol與自定義類型轉(zhuǎn)換的結(jié)合

c++
小樊
83
2024-08-06 20:48:10

在 Rust 中,可以通過(guò)實(shí)現(xiàn) From trait 和 Into trait 來(lái)實(shí)現(xiàn) stol 與自定義類型之間的轉(zhuǎn)換。

首先,讓我們定義一個(gè)自定義類型 MyType

struct MyType {
    value: i32,
}

impl MyType {
    fn new(value: i32) -> MyType {
        MyType { value }
    }
}

然后,讓我們實(shí)現(xiàn) From trait 和 Into trait 來(lái)實(shí)現(xiàn) stol 到 MyType 的轉(zhuǎn)換:

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

impl Into<i32> for MyType {
    fn into(self) -> i32 {
        self.value
    }
}

現(xiàn)在,我們就可以將一個(gè) i32 類型的值轉(zhuǎn)換為 MyType 類型的值:

let my_type: MyType = 42.into();

同樣地,我們也可以將一個(gè) MyType 類型的值轉(zhuǎn)換為 i32 類型的值:

let value: i32 = my_type.into();

通過(guò)實(shí)現(xiàn) From trait 和 Into trait,我們可以很方便地進(jìn)行 stol 與自定義類型之間的轉(zhuǎn)換,使代碼更加靈活和可讀。

0