Rust基础语法

Rust输出到命令行

输出到命令行主要可以使用println!()print!()
1. 这两个都有!是因为他们并非是函数,而是宏,具体我们以后再介绍,普通函数是不需要加!
2. 两者的区别是是否会在行尾加一个换行符
3. 具体使用方法和C语言的printf很像,但是是用{}作为占位符
4. 并且会自动识别和填充参数,字符也可以写在{}
5. 也可以使用数字指定参数的位置
6. 转义字符是相同的,只有{或者}是需要对应的写两遍

例如

fn main(){
    let a = 12;
    let b = 24;
    println!("a is {}", a);
    println!("a is {a}");
    println!("b is {1}, a is {0}", a, b);
    println!("{{");
}

image.png

关于变量

Rust是强类型语言,也就是说他对于变量的限制非常严格,但是具有自动判断变量类型的能力

默认情况下Rust的变量是不可变的,除非使用mut关键字声明为可变的变量

let a = 123; // 不可变
let mut b = 456; // 可变

声明变量使用let关键字

上面的a是不可变变量,因此任何形式的重新赋值都是不被允许的

Rust的安全也就从此可以体现,从语言层面上尽可能少的让变量发生变化

常量vs不可变变量

不可变变量是可以这样用的

let a = 1;
let a = 2;

我们可以认为这个a是一个变量,可以使用let重新绑定,但是在绑定之前是不允许被改变的

const a:i32 = 123;
let a = 456;

这是不合法的

尽管rust编译器可以自动推断类型,但是有时候并非我们所期望的类型,可以手动指定

let a:u64 = 123;

数据类型

Rust的数据类型主要有以下几种

整数

位长度有符号无符号
8biti8u8
16biti16u16
32biti32u32
64biti64u64
128biti128u128
arch(架构位数)isizeusize

除了支持0x 0o 0b 分别表示16、8、2进制以外,十进制还支持使用下划线作为分隔符方便阅读,例如985_211,也可以用字节表示b'A'

浮点数

支持f32f64,现代计算机对这两种浮点数处理速度几乎相同,但是64位的精度更高

bool

用bool表示,只能是true或者false,需要注意的是,这里相对于C/C++的限制更加严格,bool类型是无法和int类型进行隐式类型转换的

字符类型

使用char表示,大小位4字节,主要是因为是使用Unicode编码的,可以支持中英日韩表情符号零宽度空格,这些都是有效字符

复合类型

元组使用(),是一组数据类型不一样的数据集合

数组使用[],是一组数据类型相同的数据结合

这两种类型的集合长度是不可变的,额外有一些用法如下

let tup = (1, '😀', 3.14);
let (x, y, z) = tup;

是可以进行结构化绑定的,使用时是tup.0,表示0位置的元素

数组的类型是[i32; 5] 表示5个i32类型的数

let a: [i32; 5] = {1, 2, 3 ,4, 5}

初始化可以用[3; 5]表示5个3

let a: [i32; 5] = [3; 5]

数组访问是a[3]

需要注意的是,数组和元组仍然是用mut关键字

注释

注释和C++语言类似

// /**/ /// 都是合法的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖林_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值