【rust】part-0 基础

0.part-基础

1.base

1."输出"
println!();
print!();
2."占位符"
print!("{}",a);
print!("{0}{1}{1}{2}",a,b,c); //{数组}代表后续参数下标
3."不可变变量"
let mut a = 123; // mut 关键字可以使不可变变量 可变
4."变量类型申明"
let a: u64 = 123; // 申明为无符号64位整形,否则默认为32位有符号整形,对取值范围有影响
5."重影":重影与可变变量的赋值不是一个概念,重影是指用同一个名字重新代表另一个变量实体,其类型、可变属性和值都可以变化。但可变变量赋值仅能发生值的变化。
let  x = 100;
let x = x + 1; // 可变变量赋值只能改变数值,不能改变数据类型
6."注释"
// 单行注释
/// 支持,用于头部函数说明
/* 多行注释*/

2.数据类型

1.        "有符号数"  "无符号数"
8bit		i8			u8
16bit		i16			u16
...
2."float,默认为64bit"
let x = 2.0 // f64
let y:f32 = 3.0 //f32
3."元祖":元组用一对 ( ) 包括的一组数据,可以包含不同种类的数据//可以包含不同元素
let tup:(i32,f64,u8) = (500,6.4,1);
let tup2 = (1,2,3);//可以通类型元素
"元祖元素输出"
println!("{}",tup.0);//以.作为下表访问元素
4."数组"[]表示,必须为同类型数据。
let a = [1,2,3];
let b = ["a","b","c"]; //同类型即可
let c:[] = []; //定义类型、元素个数
let d = [3;5]; //定义多个元素相同的数组,=[3,3,3,3,3,] ,格式【元素值 ;元素个数】
let ut e = [1,2,3,4,5] //可变变量,否则为不可变变量
"数组元素输出"//不同tup,使用[]作为下标格式
 println!("a = [{},{},{}]",a[0],a[1],a[2]); 
 println!("b = [{},{},{}]",b[0],b[1],b[2]);

3.函数

不必做函数申明的动作,定义了即可使用。

1.简单调用
fn main(){
	let x = func_1();
}
2."传参时需要定义数据类型"
func_2(100,200);
fn func_2(x:i32,y:i32){
}
3."函数返回"格式说明,参考如下:fnuc()->i32{}
func_3()->i32{
	return 100; //返回一个i32格式的数据
}

4.函数体与函数体表达式

1."区别"
函数体:由表达式结尾的语句组成。
函数体表达式;以表达式结尾的语句组成。
函数体:func()
{ let a =100;}//以表达式结尾
函数体表达式:
{
	x + 1	//非表达式结尾
};

5.附录-源码

1   fn main() {
  1     println!("--->1.tup");
  2     let tup:(i32,f64,u8) = (500,6.4,1);
  3     let tup2 = (1,2.0,3);
  4     println!("tup: {}",tup.0);
  5     println!("tup2: {}",tup2.1);
  6
  7     println!("--->2.arr");
  8     let a = [1,2,3];
  9     let b = ["a","b","c"];
 10     let c:[i32;5] = [1,2,3,4,5];
 11     let d = [3;5];
 12     let mut e = [1,2,3];
 13     e[0]=100;
 14     println!("a = [{},{},{}]",a[0],a[1],a[2]);
 15     println!("b = [{},{},{}]",b[0],b[1],b[2]);
 16     println!("c = [{},{},{},{},{}]",c[0],c[1],c[2],c[3],c[4]);
 17     println!("d = [{},{},{},{},{}]",d[0],d[1],d[2],d[3],d[4]);
 18     println!("e[0] = {}",e[0]);
 19
 20     println!("--->5.func");
 21     func_1(100,200);//1.
 22     let x = func_2(200);//2.return
 23     println!("x = {}",x);
 24
 25     println!("--->6.block");
 26     let x_6 = {
 27         let x = 100;//same name with gloal var
 28         x + 1//no ; no return
 29     };// use ; as default
 30     println!("x_6 = {}",x_6);
 31 }
 32
 33 fn func_1(x:i32 , y:i32){
 34     println!("x = {} , y = {}",x,y);
 35 }
 36 fn func_2(x:i32) -> i32{
 37     return x;
 38 }
~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过得精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值