Source file
doc/progs/defer.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "fmt"
11 "io"
12 "os"
13 )
14
15 func a() {
16 i := 0
17 defer fmt.Println(i)
18 i++
19 return
20 }
21
22
23
24 func b() {
25 for i := 0; i < 4; i++ {
26 defer fmt.Print(i)
27 }
28 }
29
30
31
32 func c() (i int) {
33 defer func() { i++ }()
34 return 1
35 }
36
37
38
39
40 func CopyFile(dstName, srcName string) (written int64, err error) {
41 src, err := os.Open(srcName)
42 if err != nil {
43 return
44 }
45
46 dst, err := os.Create(dstName)
47 if err != nil {
48 return
49 }
50
51 written, err = io.Copy(dst, src)
52 dst.Close()
53 src.Close()
54 return
55 }
56
57
58
59 func main() {
60 a()
61 b()
62 fmt.Println()
63 fmt.Println(c())
64 }
65
View as plain text