我试图编译一个包含这个函数的程序,我本以为它不会通过编译器,但事实证明它通过了,我想知道为什么会这样.
我目前正在学习Rust,最近我遇到了这个函数
fn test(input_str: &str) -> &str {
if input_str == "" {
let default: &str = "default";
&default
} else {
input_str
}
}
据我所知,我们不能返回对函数中分配的变量的引用,因为它的生存时间不够长,我试图编译这个函数,结果它成功地通过了编译,我想知道为什么它通过了编译,我的理论是,硬编码的字符串被处理得有点不同,不知何故,它们和主程序一样长,但我不知道为什么.所以,请谁给我解释清楚:)和thnx.