What are quot;first-classquot; objects?(什么是第一类对象(Q;)?)
本文介绍了什么是第一类对象(&Q;)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在给定的编程语言中,什么时候对象或其他东西被称为第一类?为什么?它们与非它们的语言有什么不同?当有人说";一切都是对象(如Python中的)时,他们是否真的意味着";一切都是一流的?
推荐答案
简而言之,就是对象的使用没有限制。和它是一样的 任何其他对象。 第一类对象是可以动态创建、销毁、传递给函数、作为值返回并拥有编程语言中其他变量所具有的所有权限的实体。
根据语言的不同,这可能 暗示:
- 可表示为匿名文字值
- 可存储在变量中
- 可存储在数据结构中
- 具有内部标识(独立于任何给定名称)
- 与其他实体平等可比
- 可以作为过程/函数的参数
- 作为过程/函数的结果可返回
- 在运行时可构造
- 可打印
- 可读性
- 可在分布式进程之间传输
- 可在运行的进程外部存储
Source。
在C++中,函数本身不是第一类对象,但是:
- 您可以重写"()"运算符,从而可以拥有一流的对象函数。
- 函数指针为一级。
- Boost绑定、lambda和函数确实提供了一流的函数
以下是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中的),是吗? 确实意味着"一切都是 头等舱"?
术语对象可以松散地使用,并不意味着是第一类。将整个概念称为"一流实体"可能更有意义。但是在Python中,他们的目标是让所有东西都是一流的。我相信做你陈述的人的意图是指头等舱。
这篇关于什么是第一类对象(&Q;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:什么是第一类对象(&Q;)?


基础教程推荐
猜你喜欢
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01