在 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)換,使代碼更加靈活和可讀。