11
這是一個很容易回答的問題(我猜),但是我找了一會兒找不到任何東西,所以我會把我的問題指向你。如何確定變量的數據類型
存在typep
以確定給定變量是否具有某種特定數據類型,例如,整數,哈希表等,但是有沒有一個函數返回數據類型?
例如
(defvar *x* 1)
*x*
(typep *x* 'integer)
T
(the-type-function *x*)
INTEGER
這是一個很容易回答的問題(我猜),但是我找了一會兒找不到任何東西,所以我會把我的問題指向你。如何確定變量的數據類型
存在typep
以確定給定變量是否具有某種特定數據類型,例如,整數,哈希表等,但是有沒有一個函數返回數據類型?
例如
(defvar *x* 1)
*x*
(typep *x* 'integer)
T
(the-type-function *x*)
INTEGER
還有就是typep以確定給定的變量是否是一些特定的數據類型的例如整數,哈希表等,
不是真的。按照您的想法,Common Lisp變量不會輸入。
(defvar *x* 1)
*x*
(typep *x* 'integer)
T
上面沒有說明變量的類型*x*
。它確認對象1
是integer
類型。
但是有沒有函數返回數據類型?
不是。有一個函數TYPE-OF
,它返回一個對象的類型,而不是一個變量。
> (type-of 1)
FIXNUM
當我們從變量中獲得值時沒有區別。
> (type-of *x*)
FIXNUM
但這並不意味着該變量具有該類型。
注意:Common Lisp具有類型和類型聲明。但是看起來有些不同。
請參閱'type-of'運算符 –
儘管對於nitpick,類型實際上是附加到* object *(存儲在變量中),而不是附加到變量。 – Dirk
Rainer Joswigs回答符合我的需求,因爲我有一個Class我無法識別,但需要它的類型來檢查它,然後調用它的某些功能。 – Sim