В Scala нет прямого эквивалента оператору ?.
.
Самая краткая реализация в Scala без введения других символов , вероятно, будет
val lst = if( words == null ) Nil else words.split(',')
или, приведя к приведенному ниже улучшению,
val lst = (if( words == null ) "" else words).split(',')
В Scala общее правило разработки - избегать нулевых значений, когда это возможно, либо с помощью Option [], либо (как и в Java) с помощью одноэлементных резервных значений (здесь "", хотя Option является предпочтительным способом).,
Но так как вы, очевидно, заблокировали использование API, который возвращает нулевые значения, вы можете определить небольшую вспомогательную функцию для переноса результатов API.Вы можете попробовать маршрут "объекта отката" примерно так:
def safe(s:String) : String = if( s == null ) "" else s
val lst = safe( words ).split(',')
или, немного более подробно, с помощью Option []:
def safe(s:String) : Option[String] = if( s == null ) None else Some(s)
val lst = safe( words ) match { case None => Nil; case Some( w ) => w.split(',') }