< 返回版块

枣酱 发表于 2021-09-08 17:10

中文文档中的示例 10-24 fn main() { let string1 = String::from("long string is long"); let result; { let string2 = String::from("xyz"); result = longest(string1.as_str(), string2.as_str()); } println!("The longest string is {}", result); } fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() > y.len() { x } else { y } } 会出现string2 does not live long enough。 可是将 let string1 ="long string is long"; { let string2 = "xyz"; //如上 } 改成这样却能正确输出结果

评论区

写评论
作者 枣酱 2021-09-09 11:42

谢谢

--
👇
Bai-Jinlin: 你觉得正常的代码是因为字面值str是static生命周期的

作者 枣酱 2021-09-09 11:42

😂好的,下次用

--
👇
xian9yu: 建议用rust playground贴代码

Bai-Jinlin 2021-09-08 18:51

你觉得正常的代码是因为字面值str是static生命周期的

xian9yu 2021-09-08 17:38

建议用rust playground贴代码

1 共 4 条评论, 1 页