回答編集履歴

2

訂正。SomeをOptionに。

2019/02/04 12:42

投稿

退会済みユーザー
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

参考を追加します。

2019/02/04 12:42

投稿

退会済みユーザー
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
+ ```