【问题标题】:How to determine the datatype of a variable如何确定变量的数据类型
【发布时间】:2012-06-05 15:53:12
【问题描述】:

这是一个很容易回答的问题(我猜),但是我找了一会儿没有找到任何东西,所以我将我的问题直接问你。

typep 用于确定给定变量是否属于某些特定数据类型,例如整数,哈希表等,但是有没有返回数据类型的函数?

例如

(defvar *x* 1)
*x*

(typep *x* 'integer)
T

(the-type-function *x*)
INTEGER

【问题讨论】:

  • 虽然,吹毛求疵,类型实际上是附加到 object (存储在变量中),而不是变量。
  • Rainer Joswigs 的回答符合我的需要,因为我有一个我无法识别的类,但需要在调用它的某些函数之前检查它的类型。

标签: types common-lisp


【解决方案1】:

有 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 是我问题的完美答案。
猜你喜欢
  • 2017-01-05
  • 2019-04-26
  • 2010-09-28
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多