ich versuchte, eine Funktion zu schreiben, die nicht kompiliert werden, wenn null
geben wird:Bedeutung von `A>: 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
Es ist jedoch nicht wie erwartet funktioniert:
scala> f(null)
res1: Null = null
'Null' ist die untere Grenze, also ist es erlaubt, aber keine Subtypen von null sind erlaubt. – puhlen
[Programmierung in Scala, 3. Ausgabe] (http: //www.artima.com/shop/programming_in_scala_3ed), Notizen: '" Supertype und Subtyp Beziehungen sind reflexiv, was bedeutet, ein Typ ist sowohl ein Super- Typ und ein Subtyp von sich selbst. "' –
Das bedeutet, dass 'A' kann sowohl null sein alles größer als null. –