- Learning Rust
- Paul Johnson Vesa Kaihlavirta
- 215字
- 2021-07-02 23:07:17
Casting
Rust allows for variables to be cast differently. This is achieved using the as keyword. This works in the same way as it does in C#:
let my_score = 10i32; let mut final_score : u32 = 100; let final_score = my_score as u32;
We can also cast to a different type (for example, float to int):
let pi = 3.14; let new_pi = pi as i32; // new_pi = 3
However, the effects of precision-losing casts like this one may not be desirable. For instance, if you cast a float that's over the bit size of i8 to i8, the number gets truncated to 0:
let n = 240.51; let n_as_int = n as i8; // n_as_int = 0
An error will occur if the types you are attempting to cast to are not compatible; for example:
let my_home = "Newton-le-Willows"; let my_number = my_home as u32; // cannot convert &str to u32
Rust does not do implicit casting between primitive types, even when it would be safe. That is, if a function expects an i8 as a parameter, you must cast an i16 value to i8 before passing it. The reason for this is to achieve the maximum type checking and, therefore, reduce the number of potential (and more problematic) hidden bugs.
- 軟件安全技術
- 極簡算法史:從數學到機器的故事
- 數據庫系統教程(第2版)
- ASP.NET MVC4框架揭秘
- Android開發精要
- NLTK基礎教程:用NLTK和Python庫構建機器學習應用
- Scala Design Patterns
- Visual Basic程序設計教程
- 華為HMS生態與應用開發實戰
- Python Game Programming By Example
- SQL for Data Analytics
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Visual FoxPro程序設計
- Jenkins Continuous Integration Cookbook(Second Edition)
- 微服務架構深度解析:原理、實踐與進階