Gerald Jay Sussman和Harry Abelson在Structure and Interpretation of Computer Programs中对头等公民的描述是:
它们可以由变量命名。
它们可以作为参数传递给过程。
它们可能作为程序的结果返回。
它们可能包含在数据结构中。
对我来说,这意味着原始数据类型是一等公民。但是,有些questions and answers我看到了将原语视为非一等公民的答案。
问题是:Java的原始人是一等公民吗?
最佳答案
根据您问题的定义,是的。其他人使用的定义可能与您的问题中的定义不同。如果您使用其他定义,则他们可能不符合它。例如,在您链接的the answer中,问题所隐含的定义将涉及它们源自Object
的原因,当然它们不是,因此根据该定义,它们不是。
一切都归结为您所说的“一流公民”。