@ lucastex опубликовал об операторе Java Elvis, и я попробовал кое-что в Scala, чтобы получить тот же эффект.
Я только что преобразовал все в новый тип структуры с помощью оператора ?:
, принимающего объект того же типа, что и аргумент. Так скажи:
implicit def toRockStar[B](v : B) = new {
def ?:(opt: => B) = if (v == null) opt else v}
val name: String = "Paulo" // example
Почему name ?: "Lucas"
получает "Lucas"
, а name.?:{"Lucas"}
получает Paulo
? Предполагается, что новый тип структуры возвращает начальное значение чего-либо, если оно не равно нулю , то есть "Paulo"
в приведенном выше коде.
Я немного растерялся. Любое объяснение?