你们有谁知道为什么 Scalaz 的示例总是使用这种导入技术:
import scalaz._
import Scalaz._
而不是:
import scalaz.Scalaz._
? 我试图了解偏好背后的原因是什么。
谢谢!
我相信这是因为从包和对象中import scalaz._; import Scalaz._
导入所有成员。scalaz
scalaz.Scalaz
如果您只是 import import scalaz.Scalaz._
,那么您只从scalaz.Scalaz
对象中导入成员。
import scalaz._ 从核心包中导入所有 [type] 类。
import Scalaz._ 导入使所有这些类有用的隐式。比如从标准集合到 MA 的转换以及获取 Option 包装器等等。
因此,您可以使用一个而不使用另一个。
我相信这是一个有意识的设计决定,让我们能够在任何类型的隐含相关问题中幸存下来,比如这个。