TI-BASIC 68K/数据类型与可见域
外观
变量
B68 无需进行变量声明,也无方式强制要求提前声明变量,也无法手动指定变量的类型。
B68 支持符合以下要求的变量名:[A-Za-zΑ-Ωα-ω][A-Za-z_0-9Α-Ωα-ω]{,7}, 即以大小写字母或希腊字母开头,之后可用字母、希腊字母、数字和下划线的总长不超过 8 的字符串作为变量名。
B68 的变量组织形式是文件夹-变量名(Folder-VarName)进行的。但由于这个系统不支持文件夹的嵌套,所以下文称其为“名字空间”(Namespace)。名字空间只能使用不以数字开头的由字母或数字组成的不多于 8 个字符的字符串命名。
当前默认名字空间可以使用 setFold 函数设置。一般而言,系统初始自带的名字空间为 main.
要引用在其他名字空间下的变量,可以使用其完全限定名称 名字空间\变量名. 其中 \ 号可以通过 打出。
要向变量赋值,可以通过以下方式进行:
expr -> name
expr -> namespace\name
其中 -> 号通过 键打出。注意到其他的方式,如 name := value 和 value =: name 均不可用(因为冒号在 B68 中用于语句分隔)。
数据类型
尽管 B68 是动态类型语言,你依然可以通过 getType 函数进行变量类型检查。下表是 B68 的主要变量类型。
| 类型名 | VAR-LINK 类型名 | getType() 返回的字符串 |
可用 B68 操作 | 示例 |
|---|---|---|---|---|
| 数字 | EXPR | NUM | rwx | 1 |
| 代数表达式 | EXPR | EXPR | rwx | 2*x |
| 列表 | LIST | LIST | rwx | {1,2,3} |
| 矩阵 | MAT | MAT | rwx | [[1,2][3,4]] |
| 函数 | FUNC | FUNC | --x | - |
| 程序 | PRGM | PRGM | --x | - |
| 图片 | PIC | PIC | rwx | - |
| 绘图数据 | GDB | GDB | --x | - |
| 字符串 | STR | STR | rwx | "abc" |
| 汇编程序 | ASM | ASM | --x | - |
| 其他由汇编或 Flash 程序自定义的类型 | ? | ? | --- | - |
可见域
所谓可见域(Scope of Variable),就是一个变量名的有效范围。
默认情况下,直接通过 值->变量名 赋值的是当前名字空间下的全局变量,程序结束后仍然会保留;首先通过 Local 声明的变量则仅在当前程序内可用,程序结束后由操作系统回收。