回答編集履歴
2
訂正。SomeをOptionに。
answer
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
```
|
17
17
|
関数が値を返すときは、条件を網羅して同じ型を返さなければならない。
|
18
18
|
|
19
|
-
しかし仕様に戻って考えると、else を通ることはない、else はエラーにしたいなど様々な状況が考えられます。例外を投げることもできますし、関数の戻り値をSomeにすることもできます。
|
19
|
+
しかし仕様に戻って考えると、else を通ることはない、else はエラーにしたいなど様々な状況が考えられます。例外を投げることもできますし、関数の戻り値を~~Some~~Optionにすることもできます。
|
20
20
|
|
21
21
|
まずは、else の追加で問題解決になるかどうか検討してください。推測が間違っていれば追記してください。
|
22
22
|
|
1
参考を追加します。
answer
CHANGED
@@ -18,4 +18,20 @@
|
|
18
18
|
|
19
19
|
しかし仕様に戻って考えると、else を通ることはない、else はエラーにしたいなど様々な状況が考えられます。例外を投げることもできますし、関数の戻り値をSomeにすることもできます。
|
20
20
|
|
21
|
-
まずは、else の追加で問題解決になるかどうか検討してください。推測が間違っていれば追記してください。
|
21
|
+
まずは、else の追加で問題解決になるかどうか検討してください。推測が間違っていれば追記してください。
|
22
|
+
|
23
|
+
### 参考
|
24
|
+
条件が網羅されていないエラーの例です。
|
25
|
+
```REPL
|
26
|
+
scala> def oddEven(x:Int):String = if (x % 2 == 0) "偶数"
|
27
|
+
<console>:12: error: type mismatch;
|
28
|
+
found : Unit
|
29
|
+
required: String
|
30
|
+
def oddEven(x:Int):String = if (x % 2 == 0) "偶数"
|
31
|
+
```
|
32
|
+
エラーを解決した例です。 ^
|
33
|
+
```REPL
|
34
|
+
scala> def oddEven(x:Int):String = if (x % 2 == 0) "偶数" else "奇数"
|
35
|
+
oddEven: (x: Int)String
|
36
|
+
|
37
|
+
```
|