通过例子学 rust 个人精简版 2-1

2-1

原生类型
bash 复制代码
有符号整数(signed integers):i8、i16、i32、i64、i128 和 isize(指针宽度)
无符号整数(unsigned integers): u8、u16、u32、u64、u128 和 usize(指针宽度)
浮点数(floating point): f32、f64
char(字符):单个 Unicode 字符,如 'a','α' 和 '∞'(每个都是 4 字节)
bool(布尔型):只能是 true 或 false
单元类型(unit type):()。其唯一可能的值就是 () 这个空元组
bash 复制代码
数组(array):如 [1, 2, 3]
元组(tuple):如 (1, true)
rust 复制代码
fn main() {
    // 变量可以给出类型说明。
    let logical: bool = true;

    let a_float: f64 = 1.0;  // 常规说明
    let an_integer   = 5i32; // 后缀说明

    // 否则会按默认方式决定类型。
    let default_float   = 3.0; // `f64`
    let default_integer = 7;   // `i32`

    // 类型也可根据上下文自动推断。
    let mut inferred_type = 12; // 根据下一行的赋值推断为 i64 类型
    inferred_type = 4294967296i64;

    // 可变的(mutable)变量,其值可以改变。
    let mut mutable = 12; // Mutable `i32`
    mutable = 21;

    // 报错!变量的类型并不能改变。
    mutable = true;

    // 但可以用遮蔽(shadow)来覆盖前面的变量。
    let mutable = true;
}
bash 复制代码
要点1 : 常规说明 后缀说明 类型推断 默认不可变 mut可变 shadow机制
字面量和运算符
rust 复制代码
fn main() {
    // 整数相加
    println!("1 + 2 = {}", 1u32 + 2);

    // 整数相减
    println!("1 - 2 = {}", 1i32 - 2);
    // 试一试 ^ 尝试将 `1i32` 改为 `1u32`,体会为什么类型声明这么重要

    // 短路求值的布尔逻辑
    println!("true AND false is {}", true && false);
    println!("true OR false is {}", true || false);
    println!("NOT true is {}", !true);

    // 位运算
    println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);
    println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);
    println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);
    println!("1 << 5 is {}", 1u32 << 5);
    println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

    // 使用下划线改善数字的可读性!
    println!("One million is written as {}", 1_000_000u32);
}
bash 复制代码
要点1 : rust 只有短路逻辑
要点2 : 位运算 与 或 异或 左移 右移
要点3 :  println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101); | 要求两个类型 一致 后面会被自动推断成u32
要点4 : 上面那个改类型 不是不能相减 而是 溢出范围了  如果是 3u32 - 2  就不会有事 
注意 : 这不是隐式转换, rust是强类型语言 没有隐式转换
相关推荐
懒羊羊我小弟19 小时前
Webpack 基础入门
前端·webpack·rust·node.js·es6
武侠编程1 天前
Rust兵器谱|流星镖:tokio
rust
大雄野比2 天前
rust学习三、基本类型
开发语言·学习·rust
Hello.Reader2 天前
使用 `cargo install` 安装 Rust 二进制工具
开发语言·后端·rust
独好紫罗兰2 天前
通过例子学 rust 个人精简版 1-2
rust
weixin_502539852 天前
rust学习笔记2-rust的包管理工具Cargo使用
笔记·学习·rust
yoona10202 天前
Rust编程语言入门教程(三) Hello Cargo
开发语言·后端·rust·区块链·学习方法
独好紫罗兰4 天前
通过例子学 rust 个人精简版 1-1
开发语言·rust
ftzchina4 天前
Rust学习总结之结构体(一)
rust·结构体