(问什么现在才学这些, 这些都应该在学离散数学或者什么的时候就搞明白了. 我的基础教育就是典型的全面发展,全面平庸.)
类型理论中,bottom⊥表示没有值的类型, 也被称为零类型,空类型.
注意, 空类型是一切类型的基础类型.
用于函数中,被表示不返回任何值的函数,比如无穷循环, exit()函数.
**注意bottom和void不同. void表示一种unit type(单型类型),unit type没有可选的值, 比如void类型的取值只有void,或者说其值和类型相比没有提供更多的信息, 得到了类型就得到了全部信息.
但是在C语言用bottom的时候中就用void代表了. 搞C的是工程师嘛, 工程师经验再丰富, 干的事也难免"放味精少许", 到底是放多少? 所以我还是更相信数学家.
用处:
->表示一个问题"跑题"了, 不会给出一个结果. 比如说你问警察叔叔怎么炸学校,警察叔叔说你等等啊我去请示一下上级,结果一去不回.void至少还删你一巴掌.
[还记得小时候讲过一个赞扬一个小孩遵守承诺的故事, 让主人公在一个地方等着其他人回来, 结果其他人都没回来, 他就一直在那等到天黑...怎么这么脑残啊...所以说这个世界没有数学家一点问题都没有, 但是没有工程师的话咱们可就惨了. 相比之下"狼来了"的小孩显然富有实验精神, 我们应该向赞扬富兰克林一样赞扬他, deng说了实验是检验什么都行的唯一标准.]
->表示错误.
在编程语言:一般没有表示空类型的方法.('空'类型==没有类型)=>('空'==没有)
haskell:
标准不支持空类型,但是GHC提供了-XEmptyDataDecls. 允许定义类型没有构造器.
undefined常用, 遇到(evaluate)总会abort运行. 不会return结果.
Clisp:
NIL表示没有value, 而NULL类型只有一个值就是NIL(不要混淆).
scala:
Nothing.
对这语言还不太懂, 不过分露怯了,省的被深度鄙视.(一般的鄙视我都麻木了).
top类型:朝下的大头钉⊤
和bottom是两个极端,这个用于表示一切类型的基础类型, 他是最大的泛型. 也就是说它囊括了一切类型.
java里的Object类,是一切类的父类, 一切类的引用都能用Object引用代替,还都对.
其它大量语言都叫Object之类的.反正表示
-- 任取一个类型, 都可以是一个top类型.
top是所有泛型的泛型
阅读(928) | 评论(0) | 转发(0) |