У меня есть следующий код:Оптимизация псевдонима типа, пропускающая неявное преобразование в Scala?
type RString = String
implicit def stringToRString(s:String):RString = s.reverse
val s = "The Force Awakens"
val r:RString = s
println(r)
I рода ожидаемый r
быть обратным s
но оно равно s
. Является ли этот компилятор scala ярлыком, поскольку RString
является псевдонимом String
, поэтому неявное преобразование никогда не называется?
'AnyVal' не предотвращает выделение здесь. –
Почему это не предотвращено? –
@ som-snytt, возможно, вы правы; не уверен. Для этого я могу использовать [unboxed tagged types] (http://etorreborre.blogspot.co.uk/2011/11/practical-uses-for-unboxed-tagged-types.html). –