1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
fn f2(){
println!("--------复合类型:tuple,array,slice-----------");
// 复合类型
// tuple元组 ,用一对()包括的一组数据,可以包含不同种类的数据
let tup:(i32,f64,u8,char) = (10,9.9,5,'a');
println!("元组 tup: {} {} {} {}",tup.0,tup.1,tup.2,tup.3);
println!("元组 tup: {:?}",tup);
println!("元组 tup: {:?}",tup.3);
// 数组,用[]包含相同类型的数据
let a = [1,2,3,4,5]; //a是一个长度为5的数组
let b = ["go","rust","java"];//b是一个长度是4的字符串数组
let c: [i32;5] = [1,2,3,4,5];//c是一个长度是5,类型是i32的数组
println!("数组a 的a[0]元素 : {}",a[0]);
println!("数组b 的元素: {:?}",b);
println!("数组c 是长度是{}类型是{}的数组:{:?}",c.len(),"i32",c);
// slice 切片是对数据值的部分引用
// 1:字符串切片
let s = String::from("broadcast");
let part1 = &s[..5];
let part2 =&s[5..];
// 2:对象被部分引用,禁止更改值
// s.push_str(",aod");//TODO 错误:s被部分引用,禁止修改其值
println!("字符串切片:{}={}+{}",s,part1,part2);
// 3:非字符串切片
// let a=[1,2,3,4,5];
let patr3 =&a[1..3];
println!("{}",patr3[0]);
println!("非字符串切片part3:{:?}",patr3);
}
|