Обоснование метода импорта библиотеки Scalaz

#scala #scalaz

#scala #scalaz

Вопрос:

Кто-нибудь из вас знает, почему в примерах из Scalaz всегда используется этот метод импорта:

 import scalaz._
import Scalaz._
  

вместо:

 import scalaz.Scalaz._
  

? Я пытаюсь понять, в чем причина предпочтения.

Спасибо!

Ответ №1:

Я полагаю, это потому import scalaz._; import Scalaz._ , что импортирует все элементы из scalaz пакета и из scalaz.Scalaz объекта.

Если вы будете просто импортировать import scalaz.Scalaz._ , то вы импортируете только элементы из scalaz.Scalaz объекта.

Комментарии:

1. В первом случае также из объекта scalaz package.

Ответ №2:

import scalaz._ импортирует все классы [type] из основного пакета.

import Scalaz._ импортирует импликации, которые делают все эти классы полезными. Например, преобразования из стандартных коллекций в MA и получение опции-оболочки и так далее.

Таким образом, вы можете использовать одно без другого.

Я считаю, что это сознательное дизайнерское решение, позволяющее нам справиться с любыми проблемами, связанными с неявными, подобными этой.

Комментарии:

1. Спасибо! Это отличная дополнительная информация, которую следует принять во внимание.

2. Определенные элементы полного импорта можно отключить с помощью следующих механизмов: import com.foo.{нежелательный => _, _}, и «нежелательный» не будет введен.

3. почему я действительно люблю Scala, так это потому, что в нем есть множество замечательных функций, которые мне не нужно изучать, пока не придет время. @pyrony спасибо за совет!