0
現在パターンマッチングで正規表現を使用しているScala 2.11では、Seq [Char]やMatchとマッチしない限り、代わりの方法があります。現在、次の例ではSeq [Char]戦略でgetValueV2を実装しましたが、冗長で十分には見えません。あなたが正規表現を交換するために持っているん推奨されていません - スカラ正規表現パターンマッチング
他にどのような提案、
trait MyHelper {
//param Regex is deprecated
def getValue(option: Option[scala.Any]): String = {
val param = """(?:String|Boolean)Option\((.*)\)""".r
option.getOrElse("") match {
case param(s) => s
case arr: Array[_] => arr.mkString("")
case _ => ""
}
}
def getValueV2(option: Option[scala.Any]): String = {
option.getOrElse("") match {
case s : String => s.toSeq match {
case p if p.endsWith(")") => p match {
case Seq('S', 't', 'r', 'i', 'n', 'g', 'O', 'p', 't', 'i', 'o', 'n', '(', [email protected]_*) => suffix.toString.substring(0, suffix.length -1)
case Seq('B', 'o', 'o', 'l', 'e', 'a', 'n', 'O', 'p', 't', 'i', 'o', 'n', '(', [email protected]_*) => suffix.toString.substring(0, suffix.length -1)
case _ => s
}
case _ => s
}
case arr: Array[_] => arr.mkString("")
case _ => ""
}
}
}
私はkantan.regexと呼ばれる別のライブラリを探してきたが、大きなコミュニティを持っていないようです。何が最善のアプローチは、正規表現を保持し、廃止された警告を無視するだろうか?
ほぼ完璧な、私がお勧めしたいだけ修正がケースでなければなりません_ => STR – raul782
あなたのオリジナルの 'getValue'が可能、結果としてそれを持っていなかったが、私が見る「」_ =>最初 ケースですV2に追加されました。とても良い。私はあなたの要件を満たすために作られるべき他の改造があると確信しています。ポイントは、非推奨の方法でRegexパターンを使用することができる(そして、そうすべきである)ことです。 – jwvh
十分にお手入れしていただきありがとうございます。 – raul782