- 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.
- OpenStack Cloud Computing Cookbook(Third Edition)
- Python程序設計教程(第2版)
- TypeScript入門與實戰
- jQuery EasyUI網站開發實戰
- The Data Visualization Workshop
- HTML5 and CSS3 Transition,Transformation,and Animation
- Android Native Development Kit Cookbook
- 深入淺出Serverless:技術原理與應用實踐
- 軟件測試技術指南
- 大模型RAG實戰:RAG原理、應用與系統構建
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Fast Data Processing with Spark(Second Edition)
- Deep Learning with R Cookbook
- PhoneGap 4 Mobile Application Development Cookbook
- Arduino Electronics Blueprints