Struct 如何从元组结构中提取值?

Struct 如何从元组结构中提取值?,struct,rust,Struct,Rust,我有一个结构的对象,其中有一个来自外部库的字段,定义为:pub struct SomeIdpub i64 使用println!打印对象时会显示以下内容,例如:SomeId123 我创建了自己的结构: #[derive(Debug)] pub struct Something { pub id: i64, } 我试图将值从外部结构SomeId放到我的结构SomeId中的字段id: 或从struct SomeId中提取值: 你也许应该试试 let test = Something { id

我有一个结构的对象,其中有一个来自外部库的字段,定义为:pub struct SomeIdpub i64

使用println!打印对象时会显示以下内容,例如:SomeId123

我创建了自己的结构:

#[derive(Debug)]
pub struct Something {
    pub id: i64,
}
我试图将值从外部结构SomeId放到我的结构SomeId中的字段id:

或从struct SomeId中提取值:


你也许应该试试

let test = Something { id: external_struct.0 };
或者,对于第二个问题:

let test = external_struct.0;

这些结构的形式是struct structnamevariables。。。被称为元组结构,其行为与rust中的元组非常相似。

您可能应该试试

let test = Something { id: external_struct.0 };
或者,对于第二个问题:

let test = external_struct.0;

这些结构的形式是struct structnamevariables。。。被称为元组结构,其行为与rust中的元组非常相似。

您可能正在寻找以下类似的东西

pub struct SomeId(i32);

#[derive(Debug)]
pub struct Something {
    pub id: i32,
}


fn main() {
    let sid = SomeId(10);
    let sth = Something { id: sid.0 };
    println!("{:?}", sth);
}

也许你正在寻找下面这样的东西

pub struct SomeId(i32);

#[derive(Debug)]
pub struct Something {
    pub id: i32,
}


fn main() {
    let sid = SomeId(10);
    let sth = Something { id: sid.0 };
    println!("{:?}", sth);
}

也可以使用struct destructuring从SomeId提取值


查看更多示例。

也可以使用struct destructuring从SomeId提取值


更多示例。

您的问题是什么。。?顺便说一句,SomeId是一个元组结构,SomeId是一个普通的结构——如果你问的是模式匹配的话,它不完全是苹果和苹果。你的问题是什么。。?顺便说一句,SomeId是一个元组结构,而SomeId是一个普通结构——如果你问的是模式匹配的话,就不完全是苹果和苹果。说let test=external\u struct会创建一个SomeId类型的变量,而不是SomeId。啊,我没有注意到external\u struct是SomeId,因为它在文本中而不是代码中-P抱歉,我弄错了。说let test=external_struct会创建一个SomeId类型的变量,而不是SomeId。啊,我错过了外部_struct是SomeId,因为它在文本中而不是代码中-对不起,我的错误。