
- LISP 教程
- LISP - 首頁
- LISP - 概述
- LISP - 環境
- LISP - 程式結構
- LISP - 基本語法
- LISP - 資料型別
- LISP - 宏
- LISP - 變數
- LISP - 常量
- LISP - 運算子
- LISP - 決策
- LISP - 迴圈
- LISP - 函式
- LISP - 謂詞
- LISP - 數字
- LISP - 字元
- LISP - 陣列
- LISP - 字串
- LISP - 序列
- LISP - 列表
- LISP - 符號
- LISP - 向量
- LISP - 集合
- LISP - 樹
- LISP - 雜湊表
- LISP - 輸入與輸出
- LISP - 檔案 I/O
- LISP - 結構體
- LISP - 包
- LISP - 錯誤處理
- LISP - CLOS
- LISP 有用資源
- Lisp - 快速指南
- Lisp - 有用資源
- Lisp - 討論
Lisp - 資料型別
在 LISP 中,變數沒有型別,但資料物件有。
LISP 資料型別可以分為以下幾類。
標量型別 - 例如,數字型別、字元、符號等。
資料結構 - 例如,列表、向量、位向量和字串。
任何變數都可以取任何 LISP 物件作為其值,除非您已明確宣告。
雖然不需要為 LISP 變數指定資料型別,但在某些迴圈擴充套件、方法宣告和其他一些我們將在後續章節中討論的情況下,它會有所幫助。
資料型別按層次結構排列。資料型別是一組 LISP 物件,許多物件可能屬於一個這樣的集合。
typep 謂詞用於查詢物件是否屬於特定型別。
type-of 函式返回給定物件的型別。
LISP 中的型別說明符
型別說明符是系統定義的用於資料型別的符號。
陣列 | 定點數 | 包 | 簡單字串 |
原子 | 浮點數 | 路徑名 | 簡單向量 |
大數 | 函式 | 隨機狀態 | 單精度浮點數 |
位 | 雜湊表 | 有理數 | 標準字元 |
位向量 | 整數 | 有理數 | 流 |
字元 | 關鍵字 | 讀表 | 字串 |
[通用] | 列表 | 序列 | [字串字元] |
編譯函式 | 長浮點數 | 短浮點數 | 符號 |
複數 | 空列表 | 帶符號位元組 | 真 |
建構函式 | 空列表 | 簡單陣列 | 無符號位元組 |
雙精度浮點數 | 數字 | 簡單位向量 | 向量 |
除了這些系統定義的型別之外,您還可以建立自己的資料型別。當使用defstruct函式定義結構型別時,結構型別的名稱將成為一個有效的型別符號。
示例 - 使用標量資料型別
建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; set values to variables (setq x 10) (setq y 34.567) (setq ch nil) (setq n 123.78) (setq bg 11.0e+4) (setq r 124/2) ; print values of variables (print x) (print y) (print n) (print ch) (print bg) (print r)
輸出
當您單擊“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,並返回以下結果:-
10 34.567 123.78 NIL 110000.0 62
示例 - 檢查變數的型別
接下來,讓我們檢查上一個示例中使用的變數的型別。建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; define variables and set values (defvar x 10) (defvar y 34.567) (defvar ch nil) (defvar n 123.78) (defvar bg 11.0e+4) (defvar r 124/2) ; print type of all variables (print (type-of x)) (print (type-of y)) (print (type-of n)) (print (type-of ch)) (print (type-of bg)) (print (type-of r))
輸出
當您單擊“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,並返回以下結果:-
(INTEGER 0 281474976710655) SINGLE-FLOAT SINGLE-FLOAT NULL SINGLE-FLOAT (INTEGER 0 281474976710655)
廣告