Lua 为什么有函数数据类型?

为什么在 Lua 中函数被视为数据类型? 在 Python 中,你也可以将函数分配给变量并将它们作为参数传递,但是 Python 中没有函数数据类型。

点赞
用户2858170
用户2858170

我认为你错了。

如果你查看 https://docs.python.org/2/reference/datamodel.html#types ,你会发现 Python 甚至有多个函数类型。

可调用类型:

  • 用户定义的函数
  • 用户定义的方法
  • 生成器函数
  • 内置函数
  • 内置方法
  • ...

Python 文档中还有其他部分详细介绍了解释器支持的各种类型。

为什么会有函数类型?我猜是因为在一个有类型的语言中,针对不同种类的事物应该有不同的类型。如果没有不同的类型,就不需要类型。有一个函数类型是很自然的。否则,你怎样才能将对函数的引用分类呢?

2017-08-01 19:58:01
用户8201190
用户8201190

Python 实际上有一个函数类型,它被称为 lambda。在这两种编程语言中,函数是第一类值,这只是一种复杂的方式,意思是你可以像数字或字符串一样将它们传递给函数。如果适合你的目的和解决的问题,它使使用函数式编程成为可能。

2017-08-01 19:58:41