1 package main
2 3 type Point struct {
4 X int32
5 Y int32
6 }
7 8 func main() {
9 // & instead of new
10 p := &Point{X: 1, Y: 2}
11 if p.X == 1 && p.Y == 2 {
12 println("PASS: struct literal with &")
13 } else {
14 println("FAIL: struct literal with &")
15 }
16 17 // var + & instead of new(int32)
18 var n int32 = 42
19 ptr := &n
20 if *ptr == 42 {
21 println("PASS: var + &")
22 } else {
23 println("FAIL: var + &")
24 }
25 26 // Comma-separated cases instead of fallthrough
27 x := int32(2)
28 switch x {
29 case 1, 2, 3:
30 println("PASS: comma cases")
31 default:
32 println("FAIL: comma cases")
33 }
34 35 // All valid numeric types
36 var a int8 = 1
37 var b int16 = 2
38 var c int32 = 3
39 var d int64 = 4
40 var e uint8 = 5
41 var f uint16 = 6
42 var g uint32 = 7
43 var h uint64 = 8
44 var i float32 = 9.5
45 var j float64 = 10.5
46 var k byte = 11
47 var l bool = true
48 sum := int64(a) + int64(b) + int64(c) + d + int64(e) + int64(f) + int64(g) + int64(h)
49 if sum == 36 && i == 9.5 && j == 10.5 && k == 11 && l {
50 println("PASS: all valid types")
51 } else {
52 println("FAIL: all valid types")
53 }
54 }
55