8.5 类型系统


基本类型

固定位宽类型注解位宽(bit)
void空,一般用于表示无返回值
bool布尔类型8
flt3232位单精度浮点32
flt6464位双精度浮点32
int88位有符号整数8
int168位有符号整数16
int328位有符号整数32
int648位有符号整数64
uint88位无符号整数8
uint1616位无符号整数16
uint3232位无符号整数32
uint6464位无符号整数64
char字符8

可变位宽类型的位宽由编译的目标CPU架构有关。

可变位宽类型注解CPU32CPU64
sint有符号整数3264
uint无符号整数3264
uintptr指针3264
cstring字符串指针3264

枚举类型

枚举定义只能是定义整数类的值,其占用的字节数、有无符号性,通过基类标识指定。

如下所示:

enum Color:uint32{
    Red,
    Black,
}

结构体

结构体在airlang中是值类型,不会进入GC系统,除通过API分配独立的堆内存。

一般用于构成类中的共同属性。

struct Vec2{
    int32 x;
    int32 y;
}
struct Vec3 :Vec2{
    int32 z;
}

联合体

union Int32{
    int32 i32;
    struct{
        int8 [4] v4;
    }
}

接口

interface IEvent{
    void eat();
}

class Parent{
 int32 i32;

 void doing(){} 
}
class Child :Parent <IEvent>{
    int64 i64;
    void eat()@override{}
}

委托

entrust Func = void (int32,int64)@clang;