如果返回类型注释是对字符串的引用,但它返回字符串文字,为什么这个函数会编译?

问题描述 投票:0回答:1

类型注释是

&str
,是一个指向字符串的指针,对吧?但我返回一个字符串,要么
foo
要么
bar
要么
baz
。为什么这段代码有效

pub fn foo_if_fizz(fizzish: &str) -> &str {
    if fizzish == "fizz" {
        "foo"
    } else if fizzish == "fuzz" {
        "bar"
    } else {
        "baz"
    }
}
pointers rust reference
1个回答
0
投票

&str
字符串文字类型

调用者收到一个共享的、不可变的引用。他们不是所有者,因此无法修改内容或删除数据。使用相同的参数调用此函数两次将返回对同一内存的引用。

© www.soinside.com 2019 - 2024. All rights reserved.