質問編集履歴

1

追記

2019/02/02 11:40

投稿

puroko3
puroko3

スコア185

test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,77 @@
59
59
 
60
60
 
61
61
  ライブラリのロジックが正しい限り、ユーザー側のerrorチェックがnilにしかならないような場合です。
62
+
63
+
64
+
65
+
66
+
67
+ 追記
68
+
69
+ ```go
70
+
71
+ package main
72
+
73
+
74
+
75
+ import (
76
+
77
+ "fmt"
78
+
79
+ )
80
+
81
+
82
+
83
+ func Add(x, n int) (int, error) {
84
+
85
+ if n < 0 {
86
+
87
+ return 0, fmt.Errorf("0より小さい値が入力された")
88
+
89
+ }
90
+
91
+ return x + n, nil
92
+
93
+ }
94
+
95
+
96
+
97
+ func Add10(x int) int {
98
+
99
+ result, err := Add(x, 10)
100
+
101
+ if err != nil {
102
+
103
+ panic(err)
104
+
105
+ }
106
+
107
+ return result
108
+
109
+ }
110
+
111
+
112
+
113
+ func main() {
114
+
115
+ fmt.Println(Add(10, 5))
116
+
117
+ fmt.Println(Add10(10))
118
+
119
+ }
120
+
121
+ ```
122
+
123
+ func Add func Add10共にユーザー側に公開するものとします。
124
+
125
+ Addの方は、ユーザーが間違った引数を渡したらエラーを返すのに対して
126
+
127
+ Add10の方は開発者が正しい引数を渡している限りはエラーが起きる事はありません。
128
+
129
+ 今回の場合は、簡単な処理なので正しい引数が渡されている前提でもいいと思いますが、もう少し複雑な処理になってくるとエラーをアンダースコアで潰さずに念の為チェックをしたいという時があります。
130
+
131
+ だからと言って戻り値で返すと、ライブラリのロジックが正しい限り不要なエラーチェックをさせる事になってしまいます。
132
+
133
+
134
+
135
+ こういった場合はどうするべきなのでしょうか?