-
Notifications
You must be signed in to change notification settings - Fork 0
/
error_basic.go
58 lines (44 loc) · 1.03 KB
/
error_basic.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package errs
import (
"fmt"
"log"
"os"
)
// Basic -- error のハンドリングについてのサンプル
// REFERENCES::
// - https://github.com/robpike/ivy/blob/master/ivy_test.go
// - https://stackoverflow.com/questions/9371031/how-do-i-create-crossplatform-file-paths-in-go
// - https://qiita.com/andromeda/items/c5195307cd08537d4fad
func Basic() error {
// 最初に error を宣言しておいて、ハンドリングする関数を定義し呼び出すようにするパターン
var err error
check := func() {
if err != nil {
log.Print(err.Error())
}
}
// GOPATH 取得
gopath := os.Getenv("GOPATH")
// ディレクトリ表示
dir, err := os.Open(gopath)
check()
if dir == nil {
log.Fatal("dir is nil")
}
names, err := dir.Readdirnames(0)
check()
for _, n := range names {
fmt.Println(n)
}
return nil
/*
$ task
task: Task "build" is up to date
task: [run] ./try-golang -onetime
ENTER EXAMPLE NAME: error_basic
[Name] "error_basic"
bin
pkg
[Elapsed] 73.89µs
*/
}