我有一个结构对象,该对象具有一个来自外部库的字段,该字段定义为: pub struct SomeId(pub i64);
使用println!打印对象将显示此信息,例如:SomeId(123)
我创建了自己的结构:
#[derive(Debug)]
pub struct Something {
pub id: i64,
}
Run Code Online (Sandbox Code Playgroud)
而我试图把价值从外部结构SomeId到外地id在我的结构Something:
let test = Something { id: ?? };
Run Code Online (Sandbox Code Playgroud)
或者从struct中提取值SomeId:
let test: i64 = ??;
Run Code Online (Sandbox Code Playgroud)
你应该试试
let test = Something { id: external_struct.0 };
Run Code Online (Sandbox Code Playgroud)
或者,对于第二个问题,:
let test = external_struct.0;
Run Code Online (Sandbox Code Playgroud)
这些结构体的形式,struct structname(variables...)被称为元组结构体,其行为与 Rust 中的非常相似tuples。
小智 5
也可以使用结构分解从中提取价值SomeId。
pub struct SomeId(pub i64);
#[derive(Debug)]
pub struct Something {
pub id: i64,
}
fn main() {
let some_id = SomeId(42);
let SomeId(id) = some_id;
let test = Something { id: id };
let test: i64 = id;
}
Run Code Online (Sandbox Code Playgroud)
链接到更多示例。