gpt4 book ai didi

scala - `A >: Null` 的含义?

转载 作者:行者123 更新时间:2023-12-04 14:55:42 24 4
gpt4 key购买 nike

我试图编写一个函数,如果 null 将无法编译通过:

$scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.

scala> :t null
Null

scala> def f[A >: Null](x: A):A = x
f: [A >: Null](x: A)A

但是,它并没有像我预期的那样工作:
scala> f( null )
res1: Null = null

最佳答案

正如已经指出的,A >: Null允许 A成为 Null本身,但这在这里甚至无关紧要。即使 A必须是 Null 的严格父类(super class)型,仍然可以通过 nullfnull是这些类型的有效值(直接来自 Null 是它们的子类型这一事实)。

如果您不想接受可为空类型,A需要是 AnyVal 的子类型.请注意,这将阻止传递任何引用类型的值 - 不仅仅是 null本身。

没有办法接受引用类型而不接受 null。

关于scala - `A >: Null` 的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445801/

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