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

相关推荐
Brilliantwxx7 小时前
【STM32】 SPI阻塞式通信与HAL源码(串口读ID实战)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
打工仔折腾 AI8 小时前
Pascal Editor 本地部署实战:Bun 启动 WebGPU 3D 编辑器并解决公网访问报错
人工智能·后端·python·性能优化
吠品8 小时前
Nginx负载均衡配置与线上故障排查的一些经验
java·开发语言·数据库
边境悍匪8 小时前
蜗牛学苑 Java 智能体学习 Day44|Vue 前端项目搭建 思维导图复盘
java·开发语言·spring boot·学习·阿里云
wuyk5558 小时前
Python实战项目01:简易记事本系统
开发语言·python
用户EasyAdminBlazor8 小时前
EasyAdminBlazor 2.3 源码架构解析:Blazor Admin 请求到底是怎么跑起来的?
后端
企业数字化笔记8 小时前
一批相同的电脑怎么建账?数量管理、单件编码和拆分规则
java·后端·电脑
初学AI的小高8 小时前
从LangGraph到DeepAgents:理解AgentHarness
后端·agent
君顾18 小时前
本地城市社区家政物业联动系统源码:架构设计与派单联动实战
java·开发语言·健身房