Scalaのcontainsとexistsの違いを覚えた!!
ScalaでListの要素にある値が存在するかチェックをしたいときありますよね。
そんな時、直感でexistsを使おうとして、「あれ、なんか構文エラー出るぞ?」みたいなことがあるのでメモ。
Scalaで単純に要素の存在チェックをするときはcontainsを使います。
こんな感じ。
scala> List(1,2,3,4,5).contains(1) // result true
そして問題のexistsですが、これは「ある条件を満たす要素が存在するか」をチェックするコレクションメソッドです。
例えば、奇数は存在するかチェックしたい場合はこんな感じです。
// 奇数が存在 scala> List(1,2,3,4,5).exists(n => n % 2 != 0) // result true // 奇数が存在しない! scala> List(1,2,3,4,5).exists(n => n % 2 != 0) // result false
ScalaのstartsWithを覚えた!!
与えられた文字列がURLなのかどうか簡単にチェックしたい!
http:// か https://で始まればURLと判断しちゃおう、というコードを書く場合
大人しく正規表現を使う手もありますが、
今回は先頭の文字列比較startsWithを使ってみます。
Scalaではこんな感じで書けます。
def isUrl(url:String): Boolean = { url.startsWith("http://") || url.startsWith("https://") } val urlString1 = "http://www.google.co.jp/" val urlString2 = "https://www.google.co.jp/" val urlString3 = "ttps://www.google.co.jp/" // trueを返す isUrl(urlString1) // trueを返す isUrl(urlString2) // falseを返す isUrl(urlString3)
やったぜ。