一等公民,英文为"First-Class Citizen". 一般而言,某个类型支持语言定义的所有操作,包括赋值、修改、参数传递和参数返回。编程语言的基本类型一般都是一等公民,比如C语言的int类型。但依然要注意:
- float类型不能算一等公民,它要被转换成double再处理。
函数是一等公民?
- C/ObjC/C++ 函数指针是。
- 函数式编程语言和脚本语言一般默认函数地位很高,例如仓颉 函数和Lambda表达式都是。
- JS或者GO语言,支持匿名函数和闭包,函数也是。
- Java 8支持函数式编程,此时函数才是一等公民。
数组是一等公民?
- C/C++数组不能直接赋值,作为参数传递被弱化为指针。
