![]() |
1
74
好吧,让我们退后一点。 Haskell中的“undefined”是“bottom”值(表示)的一个例子。这样的值表示程序中任何未定义、卡住或部分状态。
或立即退出(旧Gofer编译器使用了此定义):
你为什么想要这样的价值?好吧,在一种懒惰的语言中,你经常可以操作存储底层值的结构或函数,而程序本身并不是底层的。 E、 无限循环的列表是非常复杂的:
我只是对列表中的元素无能为力:
这种对无限事物的操控是哈斯克尔如此有趣和富有表现力的部分原因。懒惰的结果是哈斯克尔特别关注
然而,显然,bottom的概念同样适用于Java或任何(非total)语言。在Java中,有许多表达式会产生“bottom”值:
您只是没有能力很容易地用一个底值替换另一个底值,而Java编译器也没有做很多关于底值的推理工作。然而,这样的价值观是存在的。 总之,
这就是他们的相似之处。
关于
所以当传入的值是
所以,通过添加
当然,其他底部值仍然存在:异常(比如
|
![]() |
2
7
你可以到处转悠的唯一原因
未定义和空的另一个区别是
在Java中
|
![]() |
Terio · Typescript:使用变量的值创建自定义类型 2 年前 |
![]() |
Kareem Adel · 创建函数类型(TypeScript接口) 2 年前 |
![]() |
MatÄj VondráÄek · 如何在c#方法中传递类型? 2 年前 |
![]() |
kreo · 为什么&[T]参数也接受&Vec? 6 年前 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 6 年前 |