diff --git a/syntax/defer/main.go b/syntax/defer/main.go index 607b010..8e1d562 100644 --- a/syntax/defer/main.go +++ b/syntax/defer/main.go @@ -24,7 +24,7 @@ func CatFile(path string) (err error) { fmt.Println("Error Handling in defer called.") } // fileはCloseする必要がある。 - file.Close() + err = file.Close() }() buf := make([]byte, 1024) @@ -35,7 +35,7 @@ func CatFile(path string) (err error) { } if err != nil { fmt.Println("File read error: ", err) - return + return err } fmt.Print(string(buf[:n])) } diff --git a/syntax/for/main.go b/syntax/for/main.go index a6e91c3..06c1080 100644 --- a/syntax/for/main.go +++ b/syntax/for/main.go @@ -6,6 +6,7 @@ func main() { numbers := make([]*int, 0, 3) for i := 0; i < 3; i++ { + i := i numbers = append(numbers, &i) } diff --git a/syntax/map/main.go b/syntax/map/main.go index 687115c..92abb0b 100644 --- a/syntax/map/main.go +++ b/syntax/map/main.go @@ -1,6 +1,9 @@ package main -import "fmt" +import ( + "fmt" + "sort" +) func main() { // mapが参照型である事の確認 @@ -21,12 +24,22 @@ func main() { 2: "佐藤", 4: "佐々木", } + keys := make([]int, 0, len(studnetIDMap)) + for k := range studnetIDMap { + keys = append(keys, k) + } - for k, v := range studnetIDMap { + sort.Ints(keys) + for _, k := range keys { // fmt.Printfでフォーマットに従った文字列を標準出力に出せる + fmt.Printf("Name of StudentID:%d is %s\n", k, studnetIDMap[k]) + } +} + func addMap(m map[string]string) { m["a"] = "あ" } + func addMapWithCopy(m map[string]string) { copied := make(map[string]string) for k, v := range m { diff --git a/syntax/pointer/main.go b/syntax/pointer/main.go index 8da970d..9d84f77 100644 --- a/syntax/pointer/main.go +++ b/syntax/pointer/main.go @@ -18,8 +18,10 @@ func main() { } func increment(n int) int { + fmt.Printf("the address of n is %v\n", &n) return n + 1 } func incrementWithPointer(n *int) { + fmt.Printf("the address of n is %v\n", &n) *n++ }