Initial commit: Go 1.23 release state
This commit is contained in:
79
test/simassign.go
Normal file
79
test/simassign.go
Normal file
@@ -0,0 +1,79 @@
|
||||
// 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 simultaneous assignment.
|
||||
|
||||
package main
|
||||
|
||||
var a, b, c, d, e, f, g, h, i int
|
||||
|
||||
func printit() {
|
||||
println(a, b, c, d, e, f, g, h, i)
|
||||
}
|
||||
|
||||
func testit(permuteok bool) bool {
|
||||
if a+b+c+d+e+f+g+h+i != 45 {
|
||||
print("sum does not add to 45\n")
|
||||
printit()
|
||||
return false
|
||||
}
|
||||
return permuteok ||
|
||||
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(false) {
|
||||
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(z%20 != 19) {
|
||||
print("on ", z, "th iteration\n")
|
||||
printit()
|
||||
panic("fail")
|
||||
}
|
||||
}
|
||||
|
||||
if !testit(false) {
|
||||
print("final val\n")
|
||||
printit()
|
||||
panic("fail")
|
||||
}
|
||||
|
||||
a, b = swap(1, 2)
|
||||
if a != 2 || b != 1 {
|
||||
panic("bad swap")
|
||||
}
|
||||
|
||||
a, b = swap(swap(a, b))
|
||||
if a != 2 || b != 1 {
|
||||
panic("bad swap")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user