Scalaの型階層
#Scala #型
https://docs.scala-lang.org/ja/tour/unified-types.html
Any: 全ての型のスーパータイプ
AnyVal: 値型
Double
Float
Long
Int
Short
Byte
Unit: 意味のない値を示す型。()が唯一の値。他でいうvoidの役割と似ている。
これが値であることで 全ての式が何らかの値を返す という原則を維持できる
Boolean
Char
AnyRef: 参照型。Javaでいうところのjava.lang.Object相当。
List: 0要素のListはNilという唯一の値になる。Nilの型はList[Nothing]。
Option
任意の自作の型
Null: 全てのAnyRefのサブタイプ。nullが唯一の値。Java互換用なので積極的には使わない。
Nothing: 全ての型のサブタイプ。この型の値は存在しない。