Scala で If-Else を使用してブール値を返す
Suraj P
2022年6月21日
Scala
Scala Boolean
この記事では、Scala で if-else を使用するときにブール値を返す方法について説明します。
Scala で if-else を使用してブール値を返す
それをよりよく理解するためにシナリオを見てみましょう。
def check(): Boolean = {
for ((digit1,digit2,digit3) <- digitsSet){
if ((1,5,6) == (digit1,digit2,digit3))
true
else
false
}
}
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
上記のコードでは、セットにこれらの 3 桁が含まれているかどうかを調べようとしているため、出力として true または false のいずれかが期待されますが、上記のコードを実行すると、次のエラーが発生します。
type mismatch;
found : Unit
required: Boolean
for ((digit1,digit2,digit3) <- digitsSet){
問題は、関数が Unit ではなくブール値を返す必要があることです。
したがって、この問題をさまざまな方法で解決できます。
containsメソッドを使用して、セット内の要素を検索します。要素が存在する場合はtrueを返します。それ以外の場合はfalseを返します。
これは、上記のコードを記述するためのより洗練された方法です。
コード例:
```scala
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
println(digitsSet.contains((10,20,30)))
```
出力:
```text
true
```
-
trueおよびfalseの前にreturnステートメントを追加します。これは用途が広く、ほとんどすべてのシナリオで使用できるため、最良の方法です。val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) def check(): Boolean = { val store = for ((digit1,digit2,digit3) <- digitsSet) { if ((10,20,30) == (digit1,digit2,digit3)) return true } false } println(check())
出力:
```text
true
```
-
Scala で
existsメソッドを使用します。val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))出力:
false
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
