Scala:为什么有可能有一些(无)?

Iva*_*kyy 1 scala

>Option(None)
res2: Option[None.type] = Some(None)
Run Code Online (Sandbox Code Playgroud)

为什么有可能?为什么None的选项不返回None?

Tra*_*own 11

Scala(与大多数静态类型的函数式编程语言一样)是由可以以一致方式组合在一起的片段构建的.这与其他编程语言和库(通常是动态的)相反,它们试图预测程序员的意图,并且通常通过具有许多特殊情况(嵌套结构的自动展平等)来支持这一点.

在Scala Option中只是一个类型构造函数 - 您可以通过编写创建一个Option[A]字面上的任何类型.例如,它本身就是一种类型,所以你可以拥有一个,一个,等等.没有特殊情况,只是构建程序的一般机制.AOption(a)Option[Int]Option[Option[Int]]Option[Option[Option[Int]]]