发明Rust的人是“魔鬼”吗?

B站影视 欧美电影 2025-09-16 03:02 1

摘要:如题:内存安全需要需要手工标注,如下所示,一个比较字符串长度的函数,不同的参数,可能生命周期不一样,为了防止悬垂引用错误,需要手工标注出不同的生命周期长度。

如题:内存安全需要需要手工标注,如下所示,一个比较字符串长度的函数,不同的参数,可能生命周期不一样,为了防止悬垂引用错误,需要手工标注出不同的生命周期长度。

C++是条分界线,java向左,选择割掉指针,练成葵花宝典。而Rust选择向右,把压力给到程序员,需要把问题消灭中开发阶段。

真是心疼Rust程序员,是不是头发掉的更快?

另外好奇,Rust这样的设计,真的带来总体效率的提升吗?

而且,项目代码量一旦上去,每次这样标注真的能带来内存安全性的消除?

// 错误示例2: 不匹配的生命周期// 这个函数有两个不同的生命周期参数fn longest_wrong(x: &'a str, y: &'b str) -> &'a str {// 如果返回y,编译器会报错// 因为y的生命周期是'b,而函数声明返回的是'a的生命周期y // 这里会报错}// 测试错误示例2let string1 = String::from("long string is long");let result;{let string2 = String::from("xyz");result = longest_wrong(string1.as_str, string2.as_str);}println!("The longest string is: {}", result);

#Rust#

来源:随遇而安一点号

相关推荐