当前位置:  开发笔记 > 编程语言 > 正文

什么是"头等舱"类型?

如何解决《什么是"头等舱"类型?》经验,为你挑选了2个好方法。

类型T是"头等"类型意味着什么?



1> johncip..:

使用"T"听起来好像有人在谈论Java中的泛型状态(它们被删除了,这意味着虽然你可以在运行时检查某些东西是否是List,但是你无法检查它是否是一个列表整数).

但是,也有"第一类类型",这意味着类型本身(不仅仅是它们的实例)可以显示在任何地方,就像表达式的值一样.例如,代码片段就像

someType s = new someType();
new typeOf(s); // makes a new instance of someType

但是你没有太多地看到它,因为如果你的类型依赖于一个值,类型检查需要更多的计算,如果你允许类型依赖于任何值,那么检查就变得不可判定了.



2> Pete Kirkham..:

通常它意味着T的实例可以

从函数返回

传递到功能

在运行时构造

例如,C中的函数不是第一类类型,因为它们不能在运行时构造,但它们是在JavaScript中.

在某些特殊情况下,例如定理证明,它意味着类型本身是第一类对象.更现代的文献使用"具体类型"代替表示这种模糊性.


嗯......不.虽然OP选择了这个作为答案,但这甚至没有接近回答他的问题.他的意思是类型理论中的类型.你描述的是其他头等*公民*,但它们都不是*类型*.-1.这是一个正确回答的问题,如果只是简单地说:http://stackoverflow.com/questions/599978/what-is-a-first-class-type/5839749#5839749
支持@Pete Kirkham的答案......在Expert C Programming(1994)中,Peter van der Linden给出了以下示例:/*array in struct*/struct s_tag {int a [100]; }; 他说数组现在可以被视为**一流类型**.它可以1.使用赋值语句复制2.通过值3传递给函数.是函数的返回类型
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有