私は関数を定義します:x
はSome(str)
で、str
トリミング後に空になるとSome( "")をNoneに変換するにはどうすればいいですか?
def convert(x: Option[String]): Option[String] = ...
は、それ以外の場合はトリミングされた文字列とSome
なり、Noneに変換されます。
ので、テストケースは次のようになります。
convert(Some("")) == None
convert(Some(" ")) == None
convert(None) == None
convert(Some(" abc ")) == Some("abc")
私はそれを書くことができます。
def convert(x: Option[String]): Option[String] = x match {
case Some(str) if str.trim()!="" => Some(str.trim())
case _ => None
}
しかし、私は単純な実装(1行)を見つけることを願っています。
環境内に改行文字が不足していますか?あなたはあなたが書いた行の数に反比例して支払いを受けるのですか? – paxdiablo
私はちょうど私のコードをシンプルでクリアなものにしたいと思っています。 – Freewind
@paxdiablo:実際に改善することができるので、有効な質問です。コード'str.trim'を2回実行します。これは明らかに避けるべきことです。 – Debilski