我找到了几种将 String
转换为 &str
的方法。今天哪种方法是正确的/惯用的?
let string = "hello".to_string();
let string_slice1 = &string[..];
let string_slice2: &str = &string;
let string_slice3 = &*string;
我怎样可以在不指定变量类型的情况下让第二种方法起作用?类似于&string as &str
(但它不起作用)。我看到&string
有&String
类型,但当它被隐式转换为&str
时,它将执行隐式转换。我怎样才能使这种转换显式?
&str
的上下文中,例如在将参数传递给非泛型函数时,第二种形式更好。 - user395760&
不是一个纯引用运算符:它还允许先进行解引用。" 你的意思是在第二种情况下,应该这样写:let string_slice2: &str = &(*string);
吗? - Ta Thanh Dinh