String 如何返回字符串向量?
如何返回Rust中的字符串向量?我试过:String 如何返回字符串向量?,string,rust,String,Rust,如何返回Rust中的字符串向量?我试过: fn test_vec() -> Vec<&str> { vec!("foo", "bar") } 我有点迷路了,我想我误解了(或忘了学习)一些东西。a&str不是字符串。它是一个“字符串切片”,意思是指向字符串或存储在其他地方的等价物的指针。在您的例子中,您使用的是字符串文字(使用引号可以获得字符串文字)。字符串文本的类型为&'static str,因为它们存储在编译代码存储的同一位置,因此在'static生存期内可
fn test_vec() -> Vec<&str> {
vec!("foo", "bar")
}
我有点迷路了,我想我误解了(或忘了学习)一些东西。a
&str
不是字符串。它是一个“字符串切片”,意思是指向字符串或存储在其他地方的等价物的指针。在您的例子中,您使用的是字符串文字(使用引号可以获得字符串文字)。字符串文本的类型为&'static str
,因为它们存储在编译代码存储的同一位置,因此在'static
生存期内可用,这意味着(至少)程序的整个运行期内都可用
因此,简单的解决方法是让您的方法返回特定类型:&'static str
编译器无法推断返回引用的生存期,因为您的函数不接受任何引用类型的参数。编译器推断函数签名的生存期的唯一方法是假设如果返回引用,它需要比它引用的参数的生存期短。中有更多信息&str
不是字符串。它是一个“字符串切片”,意思是指向字符串或存储在其他地方的等价物的指针。在您的例子中,您使用的是字符串文字(使用引号可以获得字符串文字)。字符串文本的类型为&'static str
,因为它们存储在编译代码存储的同一位置,因此在'static
生存期内可用,这意味着(至少)程序的整个运行期内都可用
因此,简单的解决方法是让您的方法返回特定类型:&'static str
编译器无法推断返回引用的生存期,因为您的函数不接受任何引用类型的参数。编译器推断函数签名的生存期的唯一方法是假设如果返回引用,它需要比它引用的参数的生存期短。还有更多的信息
src/main.rs:9:22: 9:26 error: missing lifetime specifier [E0106]