Там нет ничего встроенного;Фильтр Бена - лучшая краткая версия, если производительность не является проблемой (например, вы проверяете пользовательский ввод).Как правило, производительность не будет проблемой.
Также обратите внимание, что немного странно использовать match
, когда вы на самом деле не соответствуете чему-либо;это просто еще один шаблон, чтобы получить утверждение «если-то еще».Просто скажите
if (s ne null && s.trim.length > 0) Some(s) else None
, что примерно так же быстро и кратко, как и все, если только вы не хотите написать свой собственный метод «пробел».Обратите внимание, что trim
использует особый критерий: все, что выше \ u0020 (то есть ''), не обрезается, а все, что равно или ниже, является.Таким образом, вы также можете написать свой собственный детектор обрезанной строки-пустым, если выполнение этой операции было особенно важно:
def ContentOption(s: String): Option[String] = {
if (s ne null) {
var i = s.length-1
while (i >= 0) {
if (s.charAt(i) > ' ') return Some(s)
i -= 1
}
}
None
}