Rust-资料型别-复合型别

复合型别是指多个数值组为一个型别

Rust 有两个基本复合型别

元组型别(tupl)

元组型别是指将多个不同型别组成一个复合型别

固定长度,宣告好就无法增减长度

每一格都是一个独立型别

// 宣告时就指定型别
let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 自动判断型别的宣告方式
let tup = (1, 3.1417, 1, "hello");

println!("{:?}", tup);

输出
(1, 3.1417, 1, "hello")

// 多维元组
let tup = ("1", ("2", ("3")));

元组也可以透过解构(destructuring)拆分各个型别

let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 解构成各个变数
let (a, b, c, d) = tup;

println!("{} {} {} {}", a, b, c, d);

输出
1 3.1417 1 hello

也可以透过"."再加上索引位置来取得元组内的值

let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 索引从0开始
println!("{} {} {} {}", tup.0, tup.1, tup.2, tup.3);

输出
1 3.1417 1 hello

阵列型别(array)

和元组一样固定长度,差别是阵列中的型别必须要一样的

// 宣告时指定型别和长度i32是型别;之後的5是阵列的长度
let array: [i32; 5] = [1, 2, 3, 4, 5];

// 自动判断型别的宣告方式
let array = [1, 2, 3, 4, 5];

// 简化的宣告方式,阵列里全是hello长度为5
let array = ["hello"; 5];

透果索引位址取值的方式

let a = [1, 2, 3, 4, 5];

println!("{} {} {} {} {}", a[0], a[1], a[2], a[3], a[4]);

输出
1 2 3 4 5

<<:  [Day 17] JS - 冒泡事件 (Event Bubbling)

>>:  Day17:图形搜寻-贝尔曼-福特演算法(Bellman-Ford algorithm)

【Day 16】浅谈 Django model part 2

继续谈谈 model 昨天提到 Django 的 model 好处是可以无痛转移在各个 Python...

再谈 Side project

前言 我始终鼓励所有人与团队建立执行 Side project 的习惯,它可以为我们带来许多好处,在...

Day25. 发动魔法卡,融合 - Composite (下)

今天是 Composite 单元的最後一篇,既前两篇看了基本属性、建构方法後,最後一篇要来看 Com...

#31 第 30 天的排行榜

感觉要有始有终,排行榜要发完! 每日铁人赛热门 Top 10 (1014) 以 10/14 20:0...

[DAY 23] Elo Rating

当想要比较两人的强弱时 通常比较过去结果很容易受到各因素干扰 如果可以直接量化两人的表现 就可以直接...