rust 常用类型转换

原生类型

x类型\至类型 i32 u32 f64 String
i32 n/a x as u32 x as f64 x.to_string()
u32 x as u32 n/a x as f64 x.to_string()
f64 x as i32 x as u32 n/a x.to_string()
String* x.parse().unwrap() x.parse().unwrap() x.parse().unwrap() n/a
  • *可以看到i32, u32, f64 到String类型是同一个函数,这样的话,如何来确定要转换至的具体类型?就是类型推导!当然,如果rust无法通过上下文推导出类型,就需要给出提示,例如x.parse::<i32>().unwrap()。但是通常情况下,都不需要提示即可自动推导出类型。

&str/String/collections::string::String

x类型\至类型 String &str
String n/a &*x
&str x.to_string() n/a

Vec<T>/&[T]/Box<[T]>

x类型\至类型 Vec<T> &[T] Box<[T]>
Vec<T> n/a &x[..] x.into_boxed_slice()
&[T] x.to_vec() n/a Box::new(*x)
Box<[T]> x.to_vec() &*x n/a
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 通用编程概念 变量与可变性 变量默认不可变,如需要改变,可在变量名前加 mut 使其可变。例如:let mut a...
    soojade阅读 12,603评论 2 30
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • 对于连续两个右尖括号>, 那么它们之间需要一个空格来进行分隔,以避免发生编译时的错误。 C++98编译器会把>>优...
    认真学计算机阅读 1,235评论 0 7
  • lambda表达式(又被成为“闭包”或“匿名方法”)方法引用和构造方法引用扩展的目标类型和类型推导接口中的默认方法...
    183207efd207阅读 1,499评论 0 5
  • 01. 去年,在某本书上看到这样一句话:你见过沙漠,就会对所有离别都淡然。 就是这样空离的一句话,我读出了历经沧桑...
    菠萝色呀阅读 543评论 2 3