Это близко:
object ABlock {
class A
object A {
implicit def strToA(s: String): A = // ...
}
}
import ABlock._
Или следующее, если вы поместите все в одну строку:
class A; object A { implicit def strToA(s: String): A = // ... } }
... хотя в любом случае вам все равно придется импортироватьнеявное преобразование для выполнения следующей работы по вашему запросу:
import ABlock.A.strToA // for the form with the enclosing object
import A.strToA // for the one-line form without an enclosing object
val v: A = "apple"
Причина, по которой вам нужно это сделать, заключается в том, что каждая строка, которую вы вводите в REPL, заключена в объект, а каждая последующая вложена внепосредственно предшествующийЭто сделано для того, чтобы вы могли делать что-то вроде следующего, не получая ошибок переопределения:
val a = 5
val a = "five"
(Фактически, второе определение a
здесь затеняет первое.)