回答編集履歴

3

追記

2017/03/22 06:28

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -24,10 +24,46 @@
24
24
 
25
25
 
26
26
 
27
- scalaの関数の戻り値は、(returnを省略した場合)関数の最後に書いてあるものです。
27
+ scalaの関数の戻り値は、(returnを省略した場合)**関数の最後に書いてあるもの**です。
28
28
 
29
29
  ですので、上記の`addTen`の問題を解決しても、
30
30
 
31
31
  今度はhogeの返す型が合わなくてエラーが出ます。
32
32
 
33
33
 
34
+
35
+ つまり
36
+
37
+ ```scala
38
+
39
+ def hoge(num : Int) : String = {
40
+
41
+ num match{
42
+
43
+ case 0 => "0だよ!"
44
+
45
+ case _ => s"${num}に10を足したら${addTen(num)}だよ!"
46
+
47
+ }
48
+
49
+ def addTen(n:Int) : Int ={ // <- 関数の宣言で終わるのでやっぱりUnit
50
+
51
+ n + 10
52
+
53
+ }
54
+
55
+ }
56
+
57
+ ```
58
+
59
+ これは
60
+
61
+
62
+
63
+ > 関数内の処理内容の前に宣言が必要
64
+
65
+
66
+
67
+ だからではありません。
68
+
69
+ (修正方法は結果的に同じになるが。)

2

修正

2017/03/22 06:28

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- scalaの関数の戻り値は、関数の最後に書いてあるものです。
27
+ scalaの関数の戻り値は、(returnを省略した場合)関数の最後に書いてあるものです。
28
28
 
29
29
  ですので、上記の`addTen`の問題を解決しても、
30
30
 

1

別の問題についても追記

2017/03/22 05:24

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -1,6 +1,6 @@
1
1
  `n += 10`の戻り値は`Unit`です。
2
2
 
3
- つまり宣言の位置どうたらではなく、
3
+ つまり、今言われているエラーは、宣言の位置どうたらではなく、
4
4
 
5
5
 
6
6
 
@@ -17,3 +17,17 @@
17
17
 
18
18
 
19
19
  この関数がそもそも戻り値の型が合ってません。
20
+
21
+
22
+
23
+ ---
24
+
25
+
26
+
27
+ scalaの関数の戻り値は、関数の最後に書いてあるものです。
28
+
29
+ ですので、上記の`addTen`の問題を解決しても、
30
+
31
+ 今度はhogeの返す型が合わなくてエラーが出ます。
32
+
33
+