rust入门

一,输入输出

cpp 复制代码
println!("Hello, World");

二,函数

1,main函数

cpp 复制代码
fn main() {
	println!("Hello, World");
}

2,普通函数

cpp 复制代码
fn myPrint(){
    println!("{}", 1234);
}
fn main() {
	myPrint();
}

3,库函数

调用库函数,末尾带感叹号

三,变量

1,变量绑定、let、mut

cpp 复制代码
    let x = "what";
    println!("{}",x);

绑定行为类似于引用,所以这里面的x是不可修改的。

错误代码:

cpp 复制代码
    let x = "what";
    x="rrr";

正确代码:

cpp 复制代码
    let mut x = "what";
    x="rrr";

2,变量作用域

cpp 复制代码
fn main() {
	let x=5;
	let x=x+1;
	{
	    let x=x*2;
	    println!("{}",x);
	}
	println!("{}",x);
}

输出:

复制代码
12
6

代码等价于:

cpp 复制代码
fn main() {
	let x=5;
	let x2=x+1;
	{
	    let x3=x2*2;
	    println!("{}",x3);
	}
	println!("{}",x2);
}

也就是说,同一个作用域内,同样的变量名,重复进行绑定,就取代了之前的绑定,

而大括号{}则自成作用域,作用域内可以重新绑定,出了作用域又退回之前的绑定状态。

四,数据结构

1,整数类型

cpp 复制代码
	let x=111_222_3334;
	let y:u16=1123;

整数默认是i32类型,整数中间的下划线可以忽略。

2,浮点数

在 Rust 中浮点类型数字也有两种基本类型: f32f64

cpp 复制代码
	let x=2.5;
	let y:f32=1.23;

浮点数默认是f64类型。

3,基本类型的代数结构

在c++中,基本类型都是有相等关系的。

然而在rust中,浮点数只有std::cmp::PartialEq 特征,没有std::cmp::Eq 特征,Rust 的整数类型、字符串类型、布尔类型都实现了该特征。

所以,哈希表的key类型可以是整数类型、字符串类型、布尔类型,不能是浮点数类型。

4,序列

cpp 复制代码
	for i in 1..=5{	
	    println!("{}",i);
	}

带了等号,所以序列是1,2,3,4,5

去掉等号,序列就是1,2,3,4

5,vector

cpp 复制代码
fn main() {
	let mut nums=vec![1,2,4,3];
	println!("{}",nums.len());
}

五,算法库

1,排序

cpp 复制代码
fn main() {
	let mut nums=vec![1,2,4,3];
	nums.sort();
	println!("{}",nums[3]);
}

vector的默认排序,从小到大排序,输出4

相关推荐
geovindu几秒前
go: Recursion Algorithm
开发语言·后端·算法·golang·递归算法
用户2930750976694 分钟前
深入理解 RAG 文档切割:从知识库到向量数据库的关键一步
后端
geovindu6 分钟前
CSharp: Composite Pattern
开发语言·后端·c#·组合模式·结构型模式
消失的旧时光-194311 分钟前
KMP Web 开发实战(二):js、wasmJs、browser、executable 到底是什么意思?
开发语言·前端·javascript·跨平台·kmp
宇图SHARE13 分钟前
别再用 Python 写 Agent 前端了!Vue3 + NestJS + TypeScript 全栈方案,开发效率翻倍
前端·后端
吃饱了得干活15 分钟前
Spring Cloud Gateway限流:从Redis到Sentinel的三种方案
后端·spring cloud
sycmancia21 分钟前
Qt——线程的生命期问题
开发语言·qt
IT_陈寒21 分钟前
Python的GIL让我以为CPU跑满了,结果...
前端·人工智能·后端
影寂ldy22 分钟前
C# 多线程进阶知识点(线程优先级、多委托传参、线程锁、死锁)
开发语言·数据库·c#
国服第二切图仔25 分钟前
09-搜索工具Grep与Glob
开发语言·javascript·ecmascript