Tea 数据类型

优质
小牛编辑
131浏览
2023-12-01

1. 强类型

int i = 4;
auto b = 5; // 自动推导类型
var c = 5;  // 动态类型。

2. 内置系统值类型

常用: Char   Bool    
整数: Int8   Int16  Int32  Int64   UInt8   UInt16   UInt32   UInt64    
小数: Float32   Float64    Decimal   

为了使用方便,一些常用的类型由语言提供关键字:

bool = Bool   
char = Char     
byte = UInt8   
short = Int16    
int = Int32   
long = Int64   
float = Float64    // 不习惯点:float 相当于 C 的 double, 没有 double 。
decimal = Decimal

3. 默认 public, 名字前有 _ 则默认 private

4. 类型转换

不区分隐式类型转换和强制转换和函数调用,统一使用 as。

int a = 1 as long // 即C的 int a = 1L;
int a = b as long // 即C的 int a = (long)b;

5. 指针操作

语法上不支持 t* 和 &obj, 使用: Ptr 和 obj as Ptr

6. 使用类名来获取类型本身并用来反射。

Type s = String;
Method d = s.replace;
string ns = d.call("", "a", "b");

7. 允许类级别的 using

class A{
    static void fn();
}

class B{
    using A;
    void gn(){
        fn(); // A.fn();
    }
}

8. 没有析构函数

9. 没有 static class, 改用 namespace

10. 没有 abstract class, 改用 interface

11. 允许扩展类成员

class A{

}

extends A{
    void fff(){}
}