3
我有以下通用函數,現在想要將任何給定類型轉換爲字符串。to_string與泛型參數
fn write_row<T>(row: T) {
let s: String = row.to_string();
}
不過這顯然不會工作,因爲to_string沒有爲類型T實現
所以我的問題是如何將我檢查了參數的類型,然後根據需要應用to_string哪有我告訴編譯器,我現在知道變量是一個定義的類型?
我有以下通用函數,現在想要將任何給定類型轉換爲字符串。to_string與泛型參數
fn write_row<T>(row: T) {
let s: String = row.to_string();
}
不過這顯然不會工作,因爲to_string沒有爲類型T實現
所以我的問題是如何將我檢查了參數的類型,然後根據需要應用to_string哪有我告訴編譯器,我現在知道變量是一個定義的類型?
你可以告訴T
必須實現ToString
特質像這樣的編譯器:
use std::string::ToString;
fn write_row<T: ToString>(row: T) {
let s: String = row.to_string();
}
大,但我會做什麼,如果我還想允許它們沒有什麼to_string方法串... – TM90
@ TM90你什麼意思?如果它是一個字符串,則不需要調用'to_string' ... – squiguy
我的意思是,如果我想允許write_row方法的字符串,然後跳過to_string部分 – TM90