回答編集履歴

1

すいません、質問の意図をとりちがえていたので修正します。

2019/04/22 14:46

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -1,3 +1,9 @@
1
+ `prog.go:23:10: log(hello) used as value`と出る理由は、
2
+
3
+
4
+
5
+ 以下のコードだけに注目してみてください。
6
+
1
7
  ```go
2
8
 
3
9
  func log(h F) {
@@ -8,24 +14,18 @@
8
14
 
9
15
  }
10
16
 
11
- ```
12
-
13
- エラーメッセージが示すとおりこのスコープで
14
-
15
- `i`が定義してないのに参照しようとしているからです。
16
17
 
17
18
 
19
+ func main() {
18
20
 
19
- 上記が修正されても以下のところで別のエラーが出るはず。
21
+ F(log(hello)).serveInt(5)
20
22
 
21
- ```go
23
+ }
22
-
23
- F(log(hello)).serveInt(5)
24
24
 
25
25
  ```
26
26
 
27
27
 
28
28
 
29
- おちついてどパラメータどこ渡されるべきか整理してみてください。
29
+ log関数戻り値ありません。その戻り値をF()キャストようとしています
30
30
 
31
- 進んだらまたエラーメッセージを貼ってください
31
+ 「存在しない値を値として扱おうとし」というエラーメッセージです