&[&"dummy_table"] 在rust 中是 str 转 slice吗?

&[&"dummy_table"] 在rust 中是 str 转 slice吗?

fn print_type_of<T>(_: &T) {

    println!("{}", std::any::type_name::<T>())

}

fn main() {
    println!("{:?}",&[&"hello world"]);
print_type_of(&[&"dummy_table"]);
}
// ["hello world"]
// [&&str; 1]
阅读 1.2k
1 个回答

如果是转 u8 slice 的话很简单,let v: &[u8] = "hello".as_bytes();

至于你的这个,打印说的很清楚了,得到的是一个数组(array)的引用,数组长度为 1,成员类型为 str 的双重引用。

因为常量字串赋值给变量的时候就已经是一重引用,所以 &"hello" 是双重引用。然后把它放到了一个数组中,并对该数组再引用了一次,就是你得到的结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进