Rust 程式設計中的 From 和 Into 特性
From 和 Into 是 Rust 提供給我們的兩個特性。它們在內部是相互關聯的。
From 特性
當我們希望為一個特性定義如何從任何其他型別中建立自身時,我們使用 From 特性。它提供了一個非常簡單的機制,我們可以用它在幾種型別之間進行轉換。
例如,我們可以輕鬆地將 str 轉換為 String。
示例
考慮下面所示的示例
fn main() {
let my_str = "hello";
let my_string = String::from(my_str);
println!("{}",my_string);
}輸出
hello
我們甚至可以轉換我們自己的型別。
示例
考慮下面所示的示例
use std::convert::From;
#[derive(Debug)]
struct Num {
value: i64,
}
impl From for Num {
fn from(item: i64) -> Self {
Num { value: item }
}
}
fn main() {
let num = Num::from(30);
println!("My number is {:?}", num);
}輸出
My number is Num { value: 30 }Into 特性
Into 特性完全是 From 特性的倒數,它通常需要對要轉換成的型別進行說明,因為在大多數情況下,編譯器無法判斷這一點。
示例
考慮下面所示的示例
use std::convert::From;
#[derive(Debug)]
struct Num {
value: i64,
}
impl From for Num {
fn from(item: i64) -> Self {
Num { value: item }
}
}
fn main() {
let int = 5;
let num: Num = int.into();
println!("My number is {:?}", num);
}輸出
My number is Num { value: 5 }
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP