12-结构体
现在我们想象一个实际问题,假如我们要记录下1个学生的姓名、性别、年龄、身高、体重,我们可以怎么写?很自然的可以写出以下代码:
1 | fun main(): int { |
可如果是10个,甚至100个呢?已知每个学生有5个信息,那么如果记录N个学生就要定义5N个变量,不仅容易搞混,而且太麻烦了,这是简单的数据结构就不够用了,我们便可以想到一些复合数据结构,用T[]吗?可是年龄和性别类型不一样,Alum也不存在元组这样的数据结构,并且用[N]也不利于可读性,于是我们便思考,在Alum中,是否存在一种复合结构类型,能够存储不同类型的数据,并且还带标签呢?当然有,就是结构体:struct T,它的语法如下:
1 | struct S { |
我们可以通过S.field访问结构体中的字段,构造一个结构体,可以用这样的语法:
1 | let s = S { |
这与C语言是一致的,但需要注意的是,在Alum中,定义的结构体作为一种类型,不需要像C语言一样使用Struct T,可以直接使用T。
那么对于上文存储的学生信息,我们便可以用结构体重写:
1 | struct Student { |
这样就清晰多了,并且如果管理多个学生,可以存储到Student[]中,便能更轻松的管理,这不仅提高了可读性,也提高了效率。
下面给出一个示例:
1 | $import "io.al" |
注:示例代码来自Alum/examples/21_struct.al
- Title: 12-结构体
- Author: Wan Yutong
- Created at : 2026-03-02 16:17:36
- Updated at : 2026-03-03 11:38:47
- Link: https://cr0.dpdns.org/2026/03/02/12-Struct/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments