Darabonba 语言学习--基本类型

简介: 本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。

基本类型


介绍


为了能够通过 Darabonba 生成各语言对应的代码,我们需要使用最通用的原子类型:Boolean(布尔值)、Number(数字)、String(字符串)、字节序列等。


Boolean


最基本的数据类型就是简单的 true/false 值,在 Darabonba 里叫做 boolean


var bool: boolean = true;


Number


Darabonba 中数值的类型最基础的就是 number 这样的通用类型


var num: number = 123;
var numLong: number = 123456L;
var numFloat: number = 1.23;
var floatLiteral: number = 1.23f;
var numDouble: number = 1.23d;


除了支持通用数值类型 numberDarabonba 还支持通过字面量定义如下更准确的类型:


var intNum: integer = null;
var int8Num: int8 = null;
var uint8Num: uint8 = null;
var int16Num: int16 = null;
var uint16Num: uint16 = null;
var int32Num: int32 = null;
var uint32Num: uint32 = null;
var int64Num: int64 = null;
var uint64Num: uint64 = null;
var longNum: long = null;
var ulongNum: ulong = null;
var floatNum: float = null;
var doubleNum: double = null;


按数据的比特长度来区分,Darabonba 多种详细的数据类型如下表所示。

长度

有符号

无符号

浮点型

8

int8

uint8

16

int16

uint16

32

int32

uint32

float

64

int64/long

uint64/ulong

double


String


像其它语言里一样,Darabonba 使用 string 表示文本数据类型。 和 JavaScript 一样,可以使用双引号(")或单引号(')表示字符串。


var name: string = "jackson";
name = "peze";


Darabonba 还支持模版字符串,它可以定义多行文本和内嵌表达式。 这种字符串是被反引号包围(\``),并且以${ expr }`这种形式嵌入表达式


var name: string = `page`;
var age: number = 27;
var sentence: string = `Hello, my name is ${name}.
I'm ${age} years old.`;

目前暂时不支持通过如下的方式来达到同样的效果:


var sentence: string =
  "Hello, my name is " + name + ".\n\n" + "I'm " + age + " years old.";


Bytes 字节序列


Darabonba 提供了字节序列,目前只支持赋值 nullbytes 类型的变量。


var data: bytes = null;


readable


Darabonba 定义了 readable 类型来为流式数据的传输提供了支持,可以将字符串赋值给 readable 类型的变量。


var readStream: readable = null;


writable


Darabonba 定义了 writable 类型来为流式数据的传输提供了支持,目前只支持赋值 nullwritable 类型的变量 。


var data: writable = null;


Any


有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。那么我们可以使用 any 类型来标记这些变量:


var anyVal: any = 4;
anyVal = "maybe a string instead";
anyVal = false;
相关文章
|
Go
Go 语言学习之基础数据类型
Go 语言学习之基础数据类型
67 0
|
4月前
|
Go 数据处理
|
6月前
|
编译器 Go
Go 语言类型转换
Go 语言类型转换
41 3
|
7月前
|
大数据 Go
Go 语言数据类型
Go 语言数据类型
33 1
|
7月前
|
编译器 Serverless Go
Go 语言常量
Go 语言常量
37 1
|
7月前
|
Go 索引
Go 语言基本类型和运算符用法
Go 语言基本类型和运算符用法
33 0
|
7月前
|
编译器 Go
go 语言中的泛型(二)
go 语言中的泛型
70 0
|
7月前
|
编译器 Go
go 语言中的泛型(一)
go 语言中的泛型
61 0
|
Go 索引
Go 语言学习之数组
Go 语言学习之数组
55 0
Go 语言学习之数组
|
Go
Go 语言学习之常量
Go 语言学习之常量
37 0