在给定的编程语言中,什么时候将对象或其他东西称为“一流”,为什么?它们与没有语言的语言有何不同?
编辑。当一个人说“一切都是对象”时(就像在Python中一样),他的确表示“一切都是一流的”吗?
简而言之,这意味着对对象的使用没有任何限制。它与任何其他对象相同。
第一类对象是可以动态创建,销毁,传递给函数,作为值返回并具有编程语言中其他变量所具有的所有权利的实体。
根据语言,这可能意味着:
但是,在C ++函数中,它们本身不是一流的对象:
这是Javascript一流函数的示例:
// f: function that takes a number and returns a number // deltaX: small positive number // returns a function that is an approximate derivative of f function makeDerivative( f, deltaX ) { var deriv = function(x) { return ( f(x + deltaX) - f(x) )/ deltaX; } return deriv; } var cos = makeDerivative( Math.sin, 0.000001); // cos(0) ~> 1 // cos(pi/2) ~> 0
不是第一类对象的实体称为第二类对象。C ++中的函数是第二类,因为它们不能动态创建。
关于编辑:
术语“对象”可以宽松地使用,并不意味着是一流的。将整个概念称为“一流实体”可能更有意义。但是在Python中,它们的目标是使所有东西都达到一流。我相信发表你讲话的人的意图是一流的。