当前位置: 首页 > 知识库问答 >
问题:

使用字符串时生锈的寿命

刘野
2023-03-14

我已经在锈菌上试验了很长时间了。关于铁锈的寿命有一种混淆。查看以下代码

    fn main() {
    let string1 = String::from("abcd");
    let result;
    {
    let string2 = "xyzvn";

    result = longest(string1.as_str(),string2);

    }
    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的生存期在内部作用域之后结束,结果在外部作用域中定义。在println!中传递结果时!,编译不会抱怨,而是继续并打印结果。但是,当我将string2更改为:

let string2 = String::from("xyzvd");

借书人会投诉的。为什么会这样。

共有1个答案

晋涛
2023-03-14

字符串文字的类型为

有关更多信息,请参阅有关静态生存期的文档

 类似资料:
  • 此代码基于生存期章节中Rust书中的示例代码。我想知道相同方法的以下两个版本有何不同: 对 我猜在第一个版本中,我们指示编译器 > 查找生存期,使两者都 确保返回的引用仅在该生命周期内使用,因为在该生命周期之外,它可能会成为悬空引用。 代码的第二个版本是做什么的?Rust书中的生命周期省略规则之一说,在结构方法中,返回的引用被分配了

  • 我有一个问题与生命周期参数的结构。我不能100%确定如何描述这个问题,但是我创建了一个显示编译时错误的简单案例。 我得到的错误是 我尝试了很多变体,只是无法编译这个东西。我在这里找到了另一个帖子(如何修复:预期的具体寿命,但找到了绑定的寿命参数),但似乎绕过了问题,而不是解决它。我真的不明白为什么这个问题会出现。该 有什么想法吗?谢谢你的帮助。

  • 我目前正试图理解两者之间的区别

  • 问题内容: 有人可以给我展示一个如何使用Go 1 生成一个字符串的SHA哈希的工作示例吗? 文档页面缺少示例,我在Google上找不到任何有效的代码。 问题答案: 一个例子 : 在此示例中,我从字节数组进行着色。您可以使用以下方法获取字节数组 当然,如果不需要,您不需要在base64中进行编码:您可以使用Sum函数返回的原始字节数组。 下面的评论似乎有些混乱。因此,让我们为下一个用户阐明有关转换为

  • 本文向大家介绍生成随机字符串,直到使用Python生成给定字符串为止,包括了生成随机字符串,直到使用Python生成给定字符串为止的使用技巧和注意事项,需要的朋友参考一下 给定一个字符串,我们的任务是使用字符,特殊字符,数字等的随机组合生成一些字符串。 示例 算法 范例程式码 输出结果

  • 我正在学习和准备OCP 1Z0-815,我从这本优秀的准备书中读到: Deshmukh,Hanumant。OCP Oracle认证专业JavaSE 11程序员I考试基础1Z0-815:通过OCPJava11开发者认证第1部分考试1Z0-815的学习指南(p.99)。Enthuware.电子书做Kindle。 上面创建了一个字符串对象,在循环的开始处包含“hello”,然后在每次迭代中再创建两个,一