gpt4 book ai didi

struct - 如何创建嵌套结构?

转载 作者:行者123 更新时间:2023-11-29 08:34:34 25 4
gpt4 key购买 nike

我正在实现一个具有嵌套结构调用的方法。我阅读了有关 Rust 生命周期的信息,我认为我的问题与生命周期有关,但我无法理解如何在代码中使用它。

#[derive(Debug)]
pub struct Request {
Header: String
}
#[derive(Debug)]
pub enum Proto {
HTTP,
HTTPS
}

#[derive(Debug)]
pub struct HTTP {
ssss: Request,
names: Proto,
}

impl HTTP {
pub fn new(name: Proto) -> HTTP {
HTTP{
ssss.Header: "Herman".to_string(),
names: name,
}
}
}

不可能为 ssss.Header 赋值:

error: expected one of `,` or `}`, found `.`
--> src/main.rs:20:17
|
20 | ssss.Header: "Herman".to_string(),
| ^ expected one of `,` or `}` here

error[E0425]: cannot find value `ssss` in this scope
--> src/main.rs:20:13
|
20 | ssss.Header: "Herman".to_string(),
| ^^^^
| |
| `self` value is only available in methods with `self` parameter
| help: try: `self.ssss`

error[E0063]: missing field `names` in initializer of `HTTP`
--> src/main.rs:19:9
|
19 | HTTP{
| ^^^^ missing `names`

最佳答案

嵌套结构并没有什么神奇之处。您使用与非嵌套结构完全相同的语法:

pub fn new(name: Proto) -> HTTP {
HTTP {
ssss: Request {
header: "Herman".to_string(),
},
names: name,
}
}

如果你觉得嵌套太复杂,你总是可以引入一个中间变量:

pub fn new(names: Proto) -> HTTP {
let ssss = Request {
header: "Herman".to_string(),
};

HTTP { ssss, names }
}

注意:惯用的 Rust 使用 snake_case 作为变量、方法和结构属性等标识符。我已将您的 Header 重命名为 header 以避免警告。

关于struct - 如何创建嵌套结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com