12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // Copyright 2011 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // This file contains the code snippets included in "Defer, Panic, and Recover."
- package main
- import (
- "fmt"
- "io"
- "os"
- )
- func a() {
- i := 0
- defer fmt.Println(i)
- i++
- return
- }
- // STOP OMIT
- func b() {
- for i := 0; i < 4; i++ {
- defer fmt.Print(i)
- }
- }
- // STOP OMIT
- func c() (i int) {
- defer func() { i++ }()
- return 1
- }
- // STOP OMIT
- // Initial version.
- func CopyFile(dstName, srcName string) (written int64, err error) {
- src, err := os.Open(srcName)
- if err != nil {
- return
- }
- dst, err := os.Create(dstName)
- if err != nil {
- return
- }
- written, err = io.Copy(dst, src)
- dst.Close()
- src.Close()
- return
- }
- // STOP OMIT
- func main() {
- a()
- b()
- fmt.Println()
- fmt.Println(c())
- }
|