Я уже читал, что оператор 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
заказ является опцией [String]
Я просто хочу иметь необязательный параметр для метода, и если этот параметр (в данном случае) не передается, просто пропустите его
Какой самый идиоматичный способ добиться того, что я пытаюсь сделать?
- редактировать -
Полагаю, я слишком торопился спросить
Я нашел этот путь,
val orderBy = order.map( " order by " + _ ).getOrElse("")
Это правильный способ сделать это?
Я думал, карта предназначена для других целей ...