アウトプットしないと死ぬ病

Scalaの個人メモ帳

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)

やったぜ。