本文介绍了什么是第一类对象(&Q;)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在给定的编程语言中,什么时候对象或其他东西被称为第一类?为什么?它们与非它们的语言有什么不同?

当有人说";一切都是对象(如Python中的)时,他们是否真的意味着";一切都是一流的?

推荐答案

简而言之,就是对象的使用没有限制。和它是一样的任何其他对象。

第一类对象是可以动态创建、销毁、传递给函数、作为值返回并拥有编程语言中其他变量所具有的所有权限的实体。

Source

在C++中,函数本身不是第一类对象,但是:

  • 您可以重写"()"运算符,从而可以拥有一流的对象函数。
  • 函数指针为一级。
  • Boost绑定、lambda和函数确实提供了一流的函数
在C++中,类不是第一类对象,但这些类的实例是第一类对象。在Python中,类对象都是第一类对象。(有关类作为对象的更多详细信息,请参阅this answer)。

以下是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

Source

不是第一类对象的实体称为第二类对象。C++中的函数是第二类,因为它们不能动态创建。

关于编辑:

术语对象可以松散地使用,并不意味着是第一类。将整个概念称为"一流实体"可能更有意义。但是在Python中,他们的目标是让所有东西都是一流的。我相信做你陈述的人的意图是指头等舱。

这篇关于什么是第一类对象(&Q;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-28 17:50
查看更多