у новичка в Scala проблемы с Option, что эквивалентно тернарному оператору

Я уже читал, что оператор if в scala всегда возвращает выражение

Итак, я пытаюсь сделать следующее (псевдокод)

sql = "select * from xx" + iif(order.isDefined, "order by " order.get, "")

Я пытаюсь с

val sql: String = "select * from xx" + if (order.isDefined) {" order by " + order.get} else {""} 

Но получаю эту ошибку :

illegal start of simple expression

order is a Option[String]

Я просто хочу иметь необязательный параметр для метода, и если этот параметр (в данном случае order) не передается, то просто пропустите его

что будет самый идиоматический способ добиться того, что я пытаюсь сделать?

-- редактировать --

Думаю, я слишком поторопился, чтобы спросить

Я нашел этот способ,

val orderBy = order.map( " order by " + _ ).getOrElse("")

Это правильный способ сделать это?

Я думал, что карта предназначена для других целей...

5
задан opensas 16 February 2014 в 14:13
поделиться