基本数据类型
基本数据类型
本文档简要描述内置数据类型。如要了解数据类型的使用方法,请参考相应的开发指南文档。
颜色标识
Ticos Studio 使用如下的颜色标识来区分不同的端口数据类型:
数据转换
以下表格展示了隐式(implicit)类型转换的规则,只要符合隐式转换规则的两个数据类型的对应端口可以互相连接,否则的话开发工具将会报错。
如果两个数据类型无法直接进行隐式类型转换,我们也提供一些节点专门用于显式(explicit)的强制类型转换。
输出 \ 输入 | Pulse | Boolean | Number | Byte | Port | String |
---|---|---|---|---|---|---|
Pulse | 否 | 否 | 否 | 否 | 否 | |
Boolean | 是 | 是 | 是 | 否 | 是 | |
Number | 否 | 是 | 否 | 否 | 是 | |
Byte | 否 | 是 | 否 | 否 | 是 | |
Port | 否 | 否 | 否 | 否 | 是 | |
String | 否 | 否 | 否 | 否 | 否 |
以下是隐式转换的具体细节。
原始类型 | 目标类型 | 转换方法 |
---|---|---|
Boolean | Pulse | 拉起信号会被认为是一次脉冲,也就是当值从False 转换为True 时会发出一次脉冲信号。 |
Boolean | Number | False 会被转换为 0.0 ,True 会被转换为 1.0 。 |
Boolean | Byte | False 会被转换为 0000 0000 ,True 会被转换为 0000 0001 。 |
Boolean | String | False 会被转换为 "false" ,True 会被转换为 "true" 。 |
Number | Boolean | 0 会被转换为 False ,其他值都转换为 True 。 |
Number | String | 会统一将数值转换为带两位小数浮点数对应的字符串,比如 1.2345 会被转换为 "1.23" ,而 1 则会被转换为 "1.00" 。 |
Byte | Boolean | 0000 0000 会被转换为 False ,其他值都会转换为 True 。 |
Byte | String | 转换为带 h 后缀的 16 进制两位数,如 0001 0100 会转换为 14h 。 |
Port | String | 如同端口在开发工具里的显示方式,数字端口 D21 会被转换为 "D21" ,模拟端口 A1 会被转换为 "A1" 。 |
字面量
本节描述各种数据类型的合法输入格式。在可视化开发时我们经常需要在属性窗格设置这些输入参数。
字面量 | 描述 |
---|---|
9527 | 整型数的基本使用方式,就是一系列的 10 进制数字。 |
+9527 | 正数也可以显式的带正号前缀。 |
-9527 | 负数。 |
-9527.01 | 带小数部分的浮点数。 |
-.01 | 如果浮点数的整数部分为 0, 则可以不输入。 |
9527. | 末尾的小数点是合法的。 |
7e7 | 指数类型,表示 7 * 10^7 = 70 000 000 。 |
7e+7 | 指数部分可以带显式的正号。 |
7e-7 | 表示 7 * 10^-7 = 0.0000007 。 |
+.7e-7 | 表示 +0.7 * 10^-7 = 0.00000007 。 |
Inf | 表示正无穷大。 |
+Inf | 也表示正无穷大,可以带显式的正号。 |
-Inf | 负无穷大。 |
NaN | 通常用于表示一些计算错误,即 Not-a-Number 。 |
Boolean
合格的 Boolean 类型字面量为 True
和 False
。
Byte
字面量 | 描述 |
---|---|
1Ah | 16 进制,带 h 后缀。 |
03h | 小于 10h 的 16 进制数需要带 0 前缀。 |
01010101b | 2 进制表达为带 b 后缀的 8 位数字(只能为 0 或 1)。 |
76d | 十进制数值,只能在区间 [0, 255],且需带 d 后缀。可以有前缀 0,比如 0076d。 |
'a' | 带单引号的字符会被转换为对应的 ASCII 值。 |
'\n' | 制表符,对应回车换行等。 |
以上是最标准的表达方式,不过开发工具有可能会提供更好的容错和格式化手段。
Port
字面量 | 描述 |
---|---|
D21 | 表示一个数字端口,均以 D 为前缀,后跟具体的端口号。 |
A1 | 表示一个模拟端口,均以 A 为前缀,后跟具体的端口号。 |
需要注意的是,模拟端口可以转换为数字端口,但是反过来不行。如果有一个模拟信道和数字端口共享同一个物理端口(比如 Arduino Leonardo 上的 A6 和 D4),开发者必须使用 A6 作为 ADC 读,而两个表达方式都可以作为数字通信的端口,因为 A6 将会在执行时被转换为 D4。
TODO: 此处的描述待确认。
String
字面量 | 描述 |
---|---|
"hello" | 字符串字面量必须一直用双引号包围。 |
"Time: 10\"" | 包含双引号字符的字符串。 |
"Hi\nTicos" 或 "Hi\r\nTicos" | 带有换行符的字符串。 |
"Id\tName\tDescription" | 带制表位的字符串。 |
"A\\B\\C" | 反斜杠表达方式。 |
Pulse
字面量 | 描述 |
---|---|
Never | 不应该发出一次脉冲信号。 |
On Boot | 只在程序启动的时候发出一次。 |
Continuously | 在每一次执行时都会尽快的发出脉冲信号。 |
Color
类型为 color
的参数可以输入格式为 #RRGGBB
的值。其中的 RR
对应两位 16 进制数的红色值(也就是取值范围为 [0, 255]),G
和 B
分别对应绿色和蓝色,比如 #0000FF
表示正蓝色,而 #14338C
则为我们的企业色。
Loading...