| // $G $F.go && $L $F.$A && ./$A.out | |
| // 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 a,b,c,d,e,f,g,h,i int; | |
| func | |
| printit() | |
| { | |
| print(a,b,c,d,e,f,g,h,i,"\n"); | |
| } | |
| func | |
| testit() bool | |
| { | |
| if a+b+c+d+e+f+g+h+i != 45 { | |
| print("sum does not add to 45\n"); | |
| printit(); | |
| panic(); | |
| } | |
| return a == 1 && | |
| b == 2 && | |
| c == 3 && | |
| d == 4 && | |
| e == 5 && | |
| f == 6 && | |
| g == 7 && | |
| h == 8 && | |
| i == 9; | |
| } | |
| func | |
| swap(x, y int) (u, v int) { | |
| return y, x | |
| } | |
| func | |
| main() | |
| { | |
| a = 1; | |
| b = 2; | |
| c = 3; | |
| d = 4; | |
| e = 5; | |
| f = 6; | |
| g = 7; | |
| h = 8; | |
| i = 9; | |
| if !testit() { panic("init val\n"); } | |
| for z:=0; z<100; z++ { | |
| a,b,c,d, e,f,g,h,i = b,c,d,a, i,e,f,g,h; | |
| if testit() { | |
| if z == 19 { | |
| break; | |
| } | |
| print("on ", z, "th iteration\n"); | |
| printit(); | |
| panic(); | |
| } | |
| } | |
| if !testit() { | |
| print("final val\n"); | |
| printit(); | |
| panic(); | |
| } | |
| a, b = swap(1, 2); | |
| if a != 2 || b != 1 { | |
| panic("bad swap"); | |
| } | |
| //BUG a, b = swap(swap(a, b)); | |
| // if a != 2 || b != 1 { | |
| // panic("bad swap"); | |
| // } | |
| } |