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

相关推荐
Traced back7 小时前
怎么用 Modbus 让两个设备互相通信**,包含硬件接线、协议原理、读写步骤,以及 C# 实操示例。
开发语言·c#
Meepo_haha7 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
sheji34167 小时前
【开题答辩全过程】以 基于springboot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Victor3568 小时前
MongoDB(57)如何优化MongoDB的查询性能?
后端
Victor3568 小时前
MongoDB(58)如何使用索引优化查询?
后端
行百里er8 小时前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·代码规范
娇娇yyyyyy8 小时前
QT编程(17): Qt 实现自定义列表模型
开发语言·qt
码财小子8 小时前
聊聊 C++ 模块“注册式”的优雅姿势
后端·代码规范
ms_27_data_develop8 小时前
Java枚举类、异常、常用类
java·开发语言