一致を使用して文字列がnullまたは空であるかどうかを確認することは可能ですか?
私は次のようなことをしようとしています:
def sendToYahoo(message:Email) ={
val clientConfiguration = new ClientService().getClientConfiguration()
val messageId : Seq[Char] = message.identifier
messageId match {
case messageId.isEmpty => validate()
case !messageId.isEmpty => //blabla
}
}
しかし、コンパイルエラーがあります。
少し早いですがお礼を。
次のような単純な関数を書くことができます。
def isEmpty(x: String) = Option(x).forall(_.isEmpty)
または
def isEmpty(x: String) = x == null || x.isEmpty
" "
も空と見なす場合は、文字列をトリミングすることもできます。
def isEmpty(x: String) = x == null || x.trim.isEmpty
そしてそれを使用する
val messageId = message.identifier
messageId match {
case id if isEmpty(id) => validate()
case id => // blabla
}
またはmatch
なし
if (isEmpty(messageId)) {
validate()
} else {
// blabla
}
あるいは
object EmptyString {
def unapply(s: String): Option[String] =
if (s == null || s.trim.isEmpty) Some(s) else None
}
message.identifier match {
case EmptyString(s) => validate()
case _ => // blabla
}
def isNullOrEmpty[T](s: Seq[T]) = s match {
case null => true
case Seq() => true
case _ => false
}