03-数据类型
Alum是一门简单的语言,主要用于学习,它包含以下基本类型:
- int
- float
- bool
- string
- void
- T[]
同时包括以上的指针类型,即*T, 以及gen类型,其主要用作简单的泛型,另外,Alum还支持T0(Tn, ...)的函数指针类型。
int相当于C语言中的long long,或Rust中的i64,在内存中占8个字节,其取值范围在-9,223,372,036,854,775,808到9,223,372,036,854,775,807,即$-2^{63}$到$2^{63}-1$。
float并非C语言中的float,而是double,或Rust中的f64, 也占8个字节,其取值范围在$2.3E-308$到$1.7E+308$。
bool与其他语言中的基本一致,它的取值范围只有true与false, 在内存中占1个字节,本质也是true = 1, false = 0,但因为类型检查的引入(即: Alum/src/checker.rs),所以bool无法与int或float进行算术操作。
string等价于C语言中的char *, 结尾也有隐式的'\0'终止符,它是一个指向字符串的指针,占8字节。
void只有一个字面量: nil,实质上是0,占1个字节,在Alum程序中主要做空返回值的占位符。
这是一个复合数据类型,相当于 C 语言中的 T[]。假设变量 a 类型为 int[],可以用 a[n] 访问索引为 n 的元素(索引从 0 开始,即 a[0] 是第一个元素)。
这是因为数组名本质上是指向首元素的指针,a[n] 表示指针偏移 n 个位置。
顺带一提:在
Lua语言中,a[1]才是第一个元素,这与大多数语言不同。
与C语言一致表示指针类型。
gen在编译时会自动推导其类型,占8个字节。
T0(Tn, ...)表示一个函数指针类型,其函数的返回值的类型为T0,第n个参数类型为Tn,……
- Title: 03-数据类型
- Author: Wan Yutong
- Created at : 2026-02-27 13:50:47
- Updated at : 2026-03-03 11:38:47
- Link: https://cr0.dpdns.org/2026/02/27/03-Types/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments