| // $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; |
| for {} |
| for {}; |
| for j := 0; j < i; j++ { |
| if i == 0 { |
| } else i = 0; |
| var x float; |
| } |
| 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() { |
| } |