4471|5

4949

帖子

19

TA的资源

版主

楼主
 

《Rust实战》多线程的小例子有点不理解啊 [复制链接]

初学Rust深感难度

特来请教,Result接受返回值内容是Config的结构体加一个static str

这个str为何是静态字符串切片啊?返回的是个什么?错误的结果?

 

去问了问AI

struct Config {
    query: String,
    file_path: String,
}

impl Config {
    fn build(args: &[String]) -> Result<Config, &'static str> {
        if args.len() < 3 {
            return Err("not enough arguments");
        }
        
        let query = args[1].clone();
        let file_path = args[2].clone();
        
        Ok(Config { query, file_path })
    }
}

 

最新回复

天天翻可还行,哈哈   详情 回复 发表于 2024-6-29 14:53
点赞 关注

回复
举报

294

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

在Rust中,Result枚举类型通常用于表示可能的成功或失败的返回值。它有两个变体,OkErr,分别用于表示成功和失败的情况。当Result接受的返回值内容是Config结构体加一个static str时,static str表示一个静态字符串切片,它的生命周期是静态的,意味着它在整个程序的生命周期内都有效。这样设计的目的是为了在编译时就确定字符串的生命周期,避免在运行时出现内存安全问题。这也符合Rust语言对内存安全和并发性的严格要求。

 

其中代码解析是:

这段代码是一个Config结构体的定义和一个impl块,其中实现了一个名为build的关联函数。build函数接受一个字符串切片的引用作为参数,并返回一个Result枚举类型。如果参数的长度小于3,函数将返回一个Err,其中包含一个静态字符串切片"not enough arguments";否则,函数将返回一个Ok,其中包含一个Config结构体的实例。

因此,build函数返回的是一个Result枚举类型,其中Ok分支包含一个Config结构体的实例,Err分支包含一个静态字符串切片。

点评

谢谢回答  AI基本都给我解释了 为何设计成静态的全生命周期呢 不是只看一下result的结果吗    详情 回复 发表于 2024-6-27 13:05
 
 

回复

4949

帖子

19

TA的资源

版主

板凳
 
yangjiaxu 发表于 2024-6-27 11:21 在Rust中,Result枚举类型通常用于表示可能的成功或失败的返回值。它有两个变体,Ok和Err,分别用于表示成 ...

谢谢回答  AI基本都给我解释了

为何设计成静态的全生命周期呢

不是只看一下result的结果吗

 

 
 
 

回复

425

帖子

0

TA的资源

纯净的硅(中级)

4
 

  ,突然想起来这个消息了,不知道这会不会影响楼主使用AI呢,

 
 
 

回复

4949

帖子

19

TA的资源

版主

5
 
laker2008 发表于 2024-6-27 14:44   ,突然想起来这个消息了,不知道这会不会影响楼主使用AI呢,

不影响,我天天fq

点评

天天翻可还行,哈哈  详情 回复 发表于 2024-6-29 14:53
 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

6
 

天天翻可还行,哈哈

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表