#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 спасибо за совет!