在编程语言中,有时候会看到「一等公民」这个词,比如「Python 中函数是一等公民」。一等公民的意思是:
在 Python 中,一个整数、一个字符串、一个列表、一个字典和一个元组都是对象,而会让从 C/C++ 或者 Java 语言转过来的人意外的是,Python 中的函数也是对象。因为一个函数和常见的整数、字符串等”公民“一样,都是对象,可以在运行时创建,并能被赋值给变量,作为集合对象的元素,还能够作为函数的参数和返回值[1],因而我们称『Python 中函数是一等公民』,意思是 Python 中的函数和整数、字符串等常见概念的地位是平等的,一个整数和一个字符串等对象可以干的事,一个函数也可以办到。
—— 来自知乎飞鸿的 答案。
Lua 的文档中有这段描述:
All values in Lua are first-class values. This means that all values can be stored in variables, passed as arguments to other functions, and returned as results.