Plan 9 from Bell Labs’s /usr/web/sources/contrib/ericvh/go-plan9/test/iota.go

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


// $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

func assert(cond bool, msg string) {
	if !cond {
		print("assertion fail: ", msg, "\n");
		panic(1);
	}
}

const (
	x int = iota;
	y = iota;
	z = 1 << iota;
	f float = 2 * iota;
	g float = 4.5 * float(iota);
)

const (
	X = 0;
	Y;
	Z;
)

const (
	A = 1 << iota;
	B;
	C;
	D;
	E = iota * iota;
	F;
	G;
)

const (
	a = 1;
	b = iota << a;
	c = iota << b;
	d;
)

const (
	i = (a << iota) + (b * iota);
	j;
	k;
	l;
)

const (
	m = iota == 0;
	n;
)

const (
	p = float(iota);
	q;
	r;
)

const (
	s = string(iota + 'a');
	t;
)

const (
	abit, amask = 1 << iota, 1 << iota - 1;
	bbit, bmask = 1 << iota, 1 << iota - 1;
	cbit, cmask = 1 << iota, 1 << iota - 1;
)

func main() {
	assert(x == 0, "x");
	assert(y == 1, "y");
	assert(z == 4, "z");
	assert(f == 6.0, "f");
	assert(g == 18.0, "g");

	assert(X == 0, "X");
	assert(Y == 0, "Y");
	assert(Z == 0, "Z");

	assert(A == 1, "A");
	assert(B == 2, "B");
	assert(C == 4, "C");
	assert(D == 8, "D");
	assert(E == 16, "E");
	assert(F == 25, "F");

	assert(a == 1, "a");
	assert(b == 2, "b");
	assert(c == 8, "c");
	assert(d == 12, "d");

	assert(i == 1, "i");
	assert(j == 4, "j");
	assert(k == 8, "k");
	assert(l == 14, "l");

	assert(m, "m");
	assert(!n, "n");

	assert(p == 0.0, "p");
	assert(q == 1.0, "q");
	assert(r == 2.0, "r");

	assert(s == "a", "s");
	assert(t == "b", "t");

	assert(abit == 1, "abit");
	assert(amask == 0, "amask");
	assert(bbit == 2, "bbit");
	assert(bmask == 1, "bmask");
	assert(cbit == 4, "cbit");
	assert(cmask == 3, "cmask");
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.