Rust note
创始人
2024-05-16 05:13:49

Rust

该博文将持续跟进。

基础篇

Hello, world!

fn main() {println!("Hello, world!");
}

变量声明

使用let 关键字进行声明:
let 变量名: 类型;
也可以同时赋初始值:
let 变量名: 类型 = 值;
编译器可对部分值的类型进行推导:
let 变量名 = 值;

变量类型——标量类型

整型

i8、i16、i32,i64、i128、isize
u8、u16、u32、u64、u128、usize

isize、usize为平台相关类型

let num: i32 = 100;

debug 模式下变量溢出会panic
release 模式下变量溢出会形成环绕,即最大数+1会变成该类型最小的数。若想显示环绕则使用标准库Wrapping类型。

整数字面量示例
Decimal999_999
Hex0xff
Octal0o77
Binary0b1010_0101
Byte (u8 only)b’Z’

默认推导类型:i32

浮点型

f32、f64

let num: f32 = 100.00;

浮点数遵循IEEE-754浮点数标准

默认推导类型:f64

布尔型

bool
let is_false: bool = false;

字符类型

char
let ch: char = 'a';

变量类型——复合类型

元组类型

定义:
let tup: (i32, f32, bool) = (1, 2.0, true);
访问:
通过元组名.索引方式访问
tup.0、tup.1、tup.2
解构:
将元组拆分为多个变量
let (a, b, c) = tup;

数组类型

定义:
let a = [1, 2, 3, 4, 5, 6];
let a: [i32;6] = [1, 2, 3, 4, 5, 6];
let a: [3;6];等价于let a = [3, 3, 3, 3, 3, 3];
访问:
通过索引访问
a[0]、a[1]

变量的可变性与不可变性

使用以上方式声明的变量均不可修改,对其赋值会提示编译错误,其体现了变量的不可变性。

error[E0384]: cannot assign twice to immutable variable `a`--> src\main.rs:31:5|
30 |     let (a,b,c) = tup;|          -|          ||          first assignment to `a`|          help: consider making this binding mutable: `mut a`
31 |     a = 100;|     ^^^^^^^ cannot assign twice to immutable variable

若想声明可变的变量则在let 后加 mut 关键字(mut: mutable)。
如:let mut a: i32 = 100;此时对a赋值a = 200;是允许的。

变量的隐藏性

同一作用域内可以声明同名变量,下边的变量会隐藏上边的变量。即使类型不同也是可以的。
let a: i32 = 100;
let a: f32 = 100.0;

常量

定义:
const MAX_POINTS: u32 = 100_000;
访问:
可访问,不可修改。

函数

rust 使用函数使用“蛇形命名”,即小写字母和下划线的组合方式。
无参无返回值形式:

fn hello_rust() {println!("hello, rust!")
}

有参有返回值形式

fn add_one(num :i32) -> i32 {return num + 1;
}

函数内部可以定义函数

fn main() {fn add_one(num :i32) -> i32 {return num + 1;}println!("{}",add_one(1));
}

使用表达式作为函数返回值,不需写return和结尾分号

fn main() {println!("{}",add_one(1)); // 2
}fn add_one(num :i32) -> i32 {num + 1
}

语句

语句以英文半角下的“;”结尾。

表达式

fn main() {let x = 15;let y = {let x = 20;x + 6};println!("{}",y);
}

x + 6 称之为表达式,x = 后边的20也是表达式 ,表达式一般用一对{}括起来(表示代码块),注意表达式结尾不写分号。

相关内容

热门资讯

长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...