1
0
mirror of https://github.com/golang/go synced 2024-11-25 12:17:56 -07:00
go/tests/test0.go
Robert Griesemer d2490e7419 - Implemented simple rule for optional semicolons:
Semicolons are terminators for statements as in C,
  but if followed by a "}" they are not required.
  This is easy to understand and produces the desired
  result for statements.
- Updated todo.txt.

SVN=113198
2008-03-19 15:45:07 -07:00

82 lines
1.2 KiB
Go

// $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.
// This is test0.go.
package Test0
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) {
p.x, p.y = x, y
}
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
switch {
case i < y:
fallthrough;
case i < j:
case i == 0, i == 1, i == j:
i++; i++;
goto foo;
default:
i = -+-+i;
break
}
}