| // $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 |
| |
| const |
| a_const = 0 |
| |
| const ( |
| pi = /* the usual */ 3.14159265358979323 |
| e = 2.718281828 |
| mask1 int = 1 << iota |
| mask2 = 1 << iota |
| mask3 = 1 << iota |
| mask4 = 1 << iota |
| ) |
| |
| type ( |
| Empty interface {} |
| Point struct { |
| x, y int |
| } |
| Point2 Point |
| ) |
| |
| func (p *Point) Initialize(x, y int) *Point { |
| p.x, p.y = x, y |
| return p |
| } |
| |
| func (p *Point) Distance() int { |
| return p.x * p.x + p.y * p.y |
| } |
| |
| var ( |
| x1 int |
| x2 int |
| u, v, w float |
| ) |
| |
| func foo() {} |
| |
| func min(x, y int) int { |
| if x < y { return x; } |
| return y |
| } |
| |
| func swap(x, y int) (u, v int) { |
| u = y |
| v = x |
| return |
| } |
| |
| func control_structs() { |
| var p *Point = new(Point).Initialize(2, 3) |
| i := p.Distance() |
| var f float = 0.3 |
| _ = f |
| for {} |
| for {} |
| for j := 0; j < i; j++ { |
| if i == 0 { |
| } else i = 0 |
| var x float |
| _ = x |
| } |
| foo: // a label |
| var j int |
| switch y := 0; true { |
| case i < y: |
| fallthrough |
| case i < j: |
| case i == 0, i == 1, i == j: |
| i++; i++ |
| goto foo |
| default: |
| i = -+-+i |
| break |
| } |
| } |
| |
| func main() { |
| } |