|  | // 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. | 
|  |  | 
|  | package main | 
|  |  | 
|  | var ( | 
|  | nf      int | 
|  | x, y, z = f(), f(), f() | 
|  | m       = map[string]string{"a": "A"} | 
|  | a, aok  = m["a"] | 
|  | b, bok  = m["b"] | 
|  | ) | 
|  |  | 
|  | func look(s string) (string, bool) { | 
|  | x, ok := m[s] | 
|  | return x, ok | 
|  | } | 
|  |  | 
|  | func f() int { | 
|  | nf++ | 
|  | return nf | 
|  | } | 
|  |  | 
|  | func main() { | 
|  | if nf != 3 || x != 1 || y != 2 || z != 3 { | 
|  | println("nf=", nf, " x=", x, " y=", y) | 
|  | panic("fail") | 
|  | } | 
|  | if a != "A" || aok != true || b != "" || bok != false { | 
|  | println("a=", a, " aok=", aok, " b=", b, " bok=", bok) | 
|  | panic("fail") | 
|  | } | 
|  | } |