2014-12-23 2 views
1

Я пытаюсь поставить некоторые неявные преобразователи в корпусе так, что, когда я:Как разместить неявные объекты в пакете?

import packagename._ 

импортирует неявные объекты.

В настоящее время я просто использовать объект вместо пакета:

object Quote { 
    case class Quote(symbol: String, price: Int, time: Date) 
    implicit val format = Json.format [Quote] 
} 

Но, что просто чувствует себя неправильно, например, Я не могу разбить определение объекта на несколько файлов.

Я хочу, чтобы это сделать:

package Quote 

case class Quote(symbol: String, price: Int, time: Date) 
implicit val format = Json.format [Quote] // this isn't allowed 

Но, это не допускается.

Каков стандартный способ определения неявных объектов в Scala в пакете, так что когда пакет импортируется с помощью «._», вызывающий код также импортирует implicits?

ответ

4

Использование объекта пакет:

package object packagename { 
    case class Quote(symbol: String, price: Int, time: Date) 
    implicit val format = Json.format [Quote] 
} 
+0

Где вы должны разместить импорт? внутри объекта пакета или вверху сразу после строки «package xxx»? –

+0

В Scala в целом вы можете разместить импорт (почти) в любом месте. Они действительны для блока, в который вы их положили. Но поставите их наверху, если у вас нет причин уменьшать их объем. –

Смежные вопросы