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 }
~