Im пытается создать новый оператор:? в списках, который работает так же, как :: кроме того, если значение null, то возвращается исходный список. Я написал следующее, однако вскоре дошло, что я не знаю, что я делаю ....Scala расширяет класс List с помощью метода coalesce preappend
object ImplicitList {
implicit def extendIterator[T](i : List[T]) = new ListExtension(i)
}
class ListExtension[T <: Any](i : List[T]) {
def :?[B >: T] (x: B): List[B] = if (x != null) x :: i else i
}
final case class :?[B](private val hd: B, private val tl: ListExtension[B]) extends ListExtension[B](tl.:?(hd))
И ваш вопрос? –
Использование «null» следует избегать в Scala; вместо этого используйте 'Option'. 'null' действительно существует только для взаимодействия с Java. – Jesper