03-数据类型

Wan Yutong Lv2

Alum是一门简单的语言,主要用于学习,它包含以下基本类型:

  • int
  • float
  • bool
  • string
  • void
  • T[]
    同时包括以上的指针类型,即*T, 以及gen类型,其主要用作简单的泛型,另外,Alum还支持T0(Tn, ...)的函数指针类型。
  1. int

int相当于C语言中的long long,或Rust中的i64,在内存中占8个字节,其取值范围在-9,223,372,036,854,775,8089,223,372,036,854,775,807,即$-2^{63}$到$2^{63}-1$。

  1. float

float并非C语言中的float,而是double,或Rust中的f64, 也占8个字节,其取值范围在$2.3E-308$到$1.7E+308$。

  1. bool

bool与其他语言中的基本一致,它的取值范围只有truefalse, 在内存中占1个字节,本质也是true = 1, false = 0,但因为类型检查的引入(即: Alum/src/checker.rs),所以bool无法与intfloat进行算术操作。

  1. string

string等价于C语言中的char *, 结尾也有隐式的'\0'终止符,它是一个指向字符串的指针,占8字节。

  1. void

void只有一个字面量: nil,实质上是0,占1个字节,在Alum程序中主要做空返回值的占位符。

  1. T[]

这是一个复合数据类型,相当于 C 语言中的 T[]。假设变量 a 类型为 int[],可以用 a[n] 访问索引为 n 的元素(索引从 0 开始,即 a[0] 是第一个元素)。

这是因为数组名本质上是指向首元素的指针,a[n] 表示指针偏移 n 个位置。

顺带一提:在 Lua 语言中,a[1] 才是第一个元素,这与大多数语言不同。

  1. *T

C语言一致表示指针类型。

  1. gen

gen在编译时会自动推导其类型,占8个字节。

  1. T0(Tn, …)

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
On this page
03-数据类型