...
Run Format

Source file test/defer.go

Documentation: test

  // run
  
  // Copyright 2009 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.
  
  // Test defer.
  
  package main
  
  import "fmt"
  
  var result string
  
  func addInt(i int) { result += fmt.Sprint(i) }
  
  func test1helper() {
  	for i := 0; i < 10; i++ {
  		defer addInt(i)
  	}
  }
  
  func test1() {
  	result = ""
  	test1helper()
  	if result != "9876543210" {
  		fmt.Printf("test1: bad defer result (should be 9876543210): %q\n", result)
  		panic("defer")
  	}
  }
  
  func addDotDotDot(v ...interface{}) { result += fmt.Sprint(v...) }
  
  func test2helper() {
  	for i := 0; i < 10; i++ {
  		defer addDotDotDot(i)
  	}
  }
  
  func test2() {
  	result = ""
  	test2helper()
  	if result != "9876543210" {
  		fmt.Printf("test2: bad defer result (should be 9876543210): %q\n", result)
  		panic("defer")
  	}
  }
  
  func main() {
  	test1()
  	test2()
  }
  

View as plain text