Ste*_*eve 3 generics struct rust
我正在尝试创建一个可以初始化为某种类型的通用结构T
.它看起来像这样:
pub struct MyStruct<T> {
test_field: Option<T>,
name: String,
age: i32,
}
impl MyStruct<T> {
fn new(new_age: i32, new_name: String) -> MyStruct<T> {
MyStruct<T> {
test_field: None,
age: new_age,
name: new_name,
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我明白了
链式比较运算符需要括号
和一堆其他的东西.
She*_*ter 11
我强烈推荐阅读Rust编程语言.它涵盖了这样的基础知识,Rust团队花了很多时间来做好事!具体来说,关于泛型的部分可能在这里有所帮助.
<T>
实例化结构时不需要使用.T
将推断出类型:
struct MyStruct<T> {
test_field: Option<T>,
name: String,
age: i32,
}
impl<T> MyStruct<T> {
// ^^^
fn new(new_age: i32, new_name: String) -> MyStruct<T> {
MyStruct {
test_field: None,
age: new_age,
name: new_name,
}
}
}
Run Code Online (Sandbox Code Playgroud)
此外,Rust样式是4空格缩进和T
标识符.
作为DK.指出,您可以选择指定类型参数:
MyStruct::<T> {
// ^^^^^
test_field: None,
age: new_age,
name: new_name,
}
Run Code Online (Sandbox Code Playgroud)
当类型不明确时,我只见过这样的东西,这种情况并不经常发生.