gpt4 book ai didi

scala - 为什么我不应该用 Nothing 代替 Unit

转载 作者:行者123 更新时间:2023-12-02 09:47:23 30 4
gpt4 key购买 nike

我正在查看 Scala 的层次结构,然后在脑海中点击了这个按钮。

如果我声明 NoneOption[Unit]NilList[Unit] 会怎么样?/p>

Unit 和 Nothing 之间到底有什么区别?

如果我开始使用 Nothing 代替 Unit 会发生什么?

谢谢

最佳答案

一个区别是 Unit 类型只有一个值 (()) 而 Nothing 没有。因此,您无法从 Nothing 返回方法中返回任何内容,这意味着返回类型为 Nothing 的所有合法方法都必须永远循环、抛出异常或永远不会到达函数的常规结束。

另一个区别是 Nothing 是所有类型的子类型,而 Unit 不是。

What if I declare the None like Option[Unit] and Nil like List[Unit]

然后您将无法在创建除 Unit 之外的任何类型的列表或选项时使用这些值。

What will happen If I start using Nothing in Place of Unit?

您的代码将不再编译,因为您的方法将尝试返回错误的类型。

关于scala - 为什么我不应该用 Nothing 代替 Unit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816196/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com