Rust基础语法一览

先解释一下为什么学Rust,因为先前构造webview应用时使用electron有运行慢、占用高的难点,而Tauri作为另一款实现webview的框架就具有轻量(使用系统自带webview2)高效(rust作为后端语言)的优点,因而我将项目转移到了Tauri,因而Rust成了学习的一部分。

参考教程 https://www.runoob.com/rust/rust-tutorial.html

输出

println!(“text{}”,para) 其中{}指向para,也可写为{0},数字0表示参数数组下标

{{}}表示输出{}字符,其他转义字符都以\开头

变量

rust为强语言类型,但又可自行判断参数类型
rust变量默认不可变

let a = 1;//默认不可变 赋为其他值报错
let mut a = 1;//a可变
let a: i32 = 1;//:i32表示指定int32类型

不可变变量与常量区别:可以对不可变变量重新绑定
let a =1 ;let a =2;正确执行 但let a =1; a=2 ;错误

这是rust为高并发安全所设的机制:尽量少的让变量改变

数据类型
Rust 是静态类型语言,在变量声明时可以显式指定类型,但通常可以依赖类型推断。

基本类型: i32 (32位有符号整数), u32 (32位无符号整数), f64 (64位浮点数), bool (布尔类型), char (字符),&str(字符串字面量)

&str与string不同,前者存储在二进制文件中,大小确定,是只读内存,生命周期为`static(程序运行始终有效) 这使它具有安全高效的特性
而string动态分配内存,存储在堆上,由所有权系统管理生命周期

let s = String::from("Hello");
//String::from() 是 Rust 中创建字符串的常用方法,它会将一个字符串字面量(&str类型)转换为可变的、堆分配的 String 类型。
let s:&str=&string;//借用,不需要分配内存

::

我感觉::这个东西就有点像.->,各种不知道用什么符号连接的地方就用一下,让rust有自己的风格

rust整体来看也没那么可读,不像js那样趋近自然语言 我尤其不喜欢一行里一堆特殊符号 一个点,它既可以表示from 也可以表示to,那完全可以把from 和to写出来

特殊控制流

loop{break;}loop内语句会一直循环直到break

所有权

每个值都有且只有一个所有者,当所有权被转移时,不仅新的所有者被赋值,过去的所有者则会被删除。同时离开作用域,值会被删除

这就像商品在市场中流通,商品不变但交易者一直在变化,而离开市场后不再存在交易者

let a =1;let b =a;println!(“{}”,a)会报错——a的值已经消失了

借用: &引用数据而不夺取所有权 同时,如果所有者无论以哪种情况消失,则所有借用者都消失

类比C的话,借用应该是指向了所有者变量的指针

函数
fn 函数关键字


此方悬停
相册 小说 Ai