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 聲明的變量則僅在當前程序內可用,程序結束後由作業系統回收。