summaryrefslogtreecommitdiff
path: root/doc/progs
diff options
context:
space:
mode:
Diffstat (limited to 'doc/progs')
-rw-r--r--doc/progs/echo.go12
-rw-r--r--doc/progs/file.go32
-rw-r--r--doc/progs/helloworld.go2
-rw-r--r--doc/progs/helloworld3.go4
-rw-r--r--doc/progs/print.go7
-rw-r--r--doc/progs/print_string.go9
-rw-r--r--doc/progs/sieve.go14
-rw-r--r--doc/progs/sieve1.go10
-rw-r--r--doc/progs/sort.go64
-rw-r--r--doc/progs/sortmain.go42
-rw-r--r--doc/progs/strings.go4
-rw-r--r--doc/progs/sum.go8
12 files changed, 126 insertions, 82 deletions
diff --git a/doc/progs/echo.go b/doc/progs/echo.go
index 3ddb4f83e..e5cd01600 100644
--- a/doc/progs/echo.go
+++ b/doc/progs/echo.go
@@ -12,21 +12,21 @@ import (
var n_flag = flag.Bool("n", false, "don't print final newline")
const (
- kSpace = " ";
- kNewline = "\n";
+ kSpace = " ";
+ kNewline = "\n";
)
func main() {
- flag.Parse(); // Scans the arg list and sets up flags
+ flag.Parse(); // Scans the arg list and sets up flags
var s string = "";
for i := 0; i < flag.NArg(); i++ {
if i > 0 {
- s += kSpace
+ s += kSpace;
}
- s += flag.Arg(i)
+ s += flag.Arg(i);
}
if !*n_flag {
- s += kNewline
+ s += kNewline;
}
os.Stdout.WriteString(s);
}
diff --git a/doc/progs/file.go b/doc/progs/file.go
index bda3890de..74b9ee440 100644
--- a/doc/progs/file.go
+++ b/doc/progs/file.go
@@ -10,21 +10,21 @@ import (
)
type File struct {
- fd int; // file descriptor number
- name string; // file name at Open time
+ fd int; // file descriptor number
+ name string; // file name at Open time
}
func newFile(fd int, name string) *File {
if fd < 0 {
- return nil
+ return nil;
}
- return &File{fd, name}
+ return &File{fd, name};
}
var (
- Stdin = newFile(0, "/dev/stdin");
- Stdout = newFile(1, "/dev/stdout");
- Stderr = newFile(2, "/dev/stderr");
+ Stdin = newFile(0, "/dev/stdin");
+ Stdout = newFile(1, "/dev/stdout");
+ Stderr = newFile(2, "/dev/stderr");
)
func Open(name string, mode int, perm int) (file *File, err os.Error) {
@@ -32,43 +32,43 @@ func Open(name string, mode int, perm int) (file *File, err os.Error) {
if e != 0 {
err = os.Errno(e);
}
- return newFile(r, name), err
+ return newFile(r, name), err;
}
func (file *File) Close() os.Error {
if file == nil {
- return os.EINVAL
+ return os.EINVAL;
}
e := syscall.Close(file.fd);
- file.fd = -1; // so it can't be closed again
+ file.fd = -1; // so it can't be closed again
if e != 0 {
return os.Errno(e);
}
- return nil
+ return nil;
}
func (file *File) Read(b []byte) (ret int, err os.Error) {
if file == nil {
- return -1, os.EINVAL
+ return -1, os.EINVAL;
}
r, e := syscall.Read(file.fd, b);
if e != 0 {
err = os.Errno(e);
}
- return int(r), err
+ return int(r), err;
}
func (file *File) Write(b []byte) (ret int, err os.Error) {
if file == nil {
- return -1, os.EINVAL
+ return -1, os.EINVAL;
}
r, e := syscall.Write(file.fd, b);
if e != 0 {
err = os.Errno(e);
}
- return int(r), err
+ return int(r), err;
}
func (file *File) String() string {
- return file.name
+ return file.name;
}
diff --git a/doc/progs/helloworld.go b/doc/progs/helloworld.go
index c4c3855ed..9192c41ba 100644
--- a/doc/progs/helloworld.go
+++ b/doc/progs/helloworld.go
@@ -4,7 +4,7 @@
package main
-import fmt "fmt" // Package implementing formatted I/O.
+import fmt "fmt" // Package implementing formatted I/O.
func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n");
diff --git a/doc/progs/helloworld3.go b/doc/progs/helloworld3.go
index ea567fe1b..1aa0eab09 100644
--- a/doc/progs/helloworld3.go
+++ b/doc/progs/helloworld3.go
@@ -13,9 +13,9 @@ import (
func main() {
hello := []byte{'h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '\n'};
file.Stdout.Write(hello);
- file, err := file.Open("/does/not/exist", 0, 0);
+ file, err := file.Open("/does/not/exist", 0, 0);
if file == nil {
- fmt.Printf("can't open file; err=%s\n", err.String());
+ fmt.Printf("can't open file; err=%s\n", err.String());
os.Exit(1);
}
}
diff --git a/doc/progs/print.go b/doc/progs/print.go
index cc146fed8..0c08bff18 100644
--- a/doc/progs/print.go
+++ b/doc/progs/print.go
@@ -7,11 +7,14 @@ package main
import "fmt"
func main() {
- var u64 uint64 = 1<<64-1;
+ var u64 uint64 = 1<<64 - 1;
fmt.Printf("%d %d\n", u64, int64(u64));
// harder stuff
- type T struct { a int; b string };
+ type T struct {
+ a int;
+ b string;
+ }
t := T{77, "Sunset Strip"};
a := []int{1, 2, 3, 4};
fmt.Printf("%v %v %v\n", u64, t, a);
diff --git a/doc/progs/print_string.go b/doc/progs/print_string.go
index 13a8d8241..7526f79fb 100644
--- a/doc/progs/print_string.go
+++ b/doc/progs/print_string.go
@@ -6,13 +6,16 @@ package main
import "fmt"
-type testType struct { a int; b string }
+type testType struct {
+ a int;
+ b string;
+}
func (t *testType) String() string {
- return fmt.Sprint(t.a) + " " + t.b
+ return fmt.Sprint(t.a) + " " + t.b;
}
func main() {
t := &testType{77, "Sunset Strip"};
- fmt.Println(t)
+ fmt.Println(t);
}
diff --git a/doc/progs/sieve.go b/doc/progs/sieve.go
index cd011d293..601c2c410 100644
--- a/doc/progs/sieve.go
+++ b/doc/progs/sieve.go
@@ -9,7 +9,7 @@ import "fmt"
// Send the sequence 2, 3, 4, ... to channel 'ch'.
func generate(ch chan int) {
for i := 2; ; i++ {
- ch <- i // Send 'i' to channel 'ch'.
+ ch <- i; // Send 'i' to channel 'ch'.
}
}
@@ -17,22 +17,22 @@ func generate(ch chan int) {
// removing those divisible by 'prime'.
func filter(in, out chan int, prime int) {
for {
- i := <-in; // Receive value of new variable 'i' from 'in'.
- if i % prime != 0 {
- out <- i // Send 'i' to channel 'out'.
+ i := <-in; // Receive value of new variable 'i' from 'in'.
+ if i%prime != 0 {
+ out <- i; // Send 'i' to channel 'out'.
}
}
}
// The prime sieve: Daisy-chain filter processes together.
func main() {
- ch := make(chan int); // Create a new channel.
- go generate(ch); // Start generate() as a goroutine.
+ ch := make(chan int); // Create a new channel.
+ go generate(ch); // Start generate() as a goroutine.
for {
prime := <-ch;
fmt.Println(prime);
ch1 := make(chan int);
go filter(ch, ch1, prime);
- ch = ch1
+ ch = ch1;
}
}
diff --git a/doc/progs/sieve1.go b/doc/progs/sieve1.go
index 0ae3893ab..7dd5ecc2c 100644
--- a/doc/progs/sieve1.go
+++ b/doc/progs/sieve1.go
@@ -6,12 +6,12 @@ package main
import "fmt"
-// Send the sequence 2, 3, 4, ... to returned channel
+// Send the sequence 2, 3, 4, ... to returned channel
func generate() chan int {
ch := make(chan int);
- go func(){
+ go func() {
for i := 2; ; i++ {
- ch <- i
+ ch <- i;
}
}();
return ch;
@@ -22,8 +22,8 @@ func filter(in chan int, prime int) chan int {
out := make(chan int);
go func() {
for {
- if i := <-in; i % prime != 0 {
- out <- i
+ if i := <-in; i%prime != 0 {
+ out <- i;
}
}
}();
diff --git a/doc/progs/sort.go b/doc/progs/sort.go
index 687217a31..0d9eab607 100644
--- a/doc/progs/sort.go
+++ b/doc/progs/sort.go
@@ -20,8 +20,8 @@ func Sort(data SortInterface) {
func IsSorted(data SortInterface) bool {
n := data.Len();
- for i := n - 1; i > 0; i-- {
- if data.Less(i, i - 1) {
+ for i := n-1; i > 0; i-- {
+ if data.Less(i, i-1) {
return false;
}
}
@@ -32,32 +32,62 @@ func IsSorted(data SortInterface) bool {
type IntArray []int
-func (p IntArray) Len() int { return len(p); }
-func (p IntArray) Less(i, j int) bool { return p[i] < p[j]; }
-func (p IntArray) Swap(i, j int) { p[i], p[j] = p[j], p[i]; }
+func (p IntArray) Len() int {
+ return len(p);
+}
+func (p IntArray) Less(i, j int) bool {
+ return p[i] < p[j];
+}
+func (p IntArray) Swap(i, j int) {
+ p[i], p[j] = p[j], p[i];
+}
type FloatArray []float
-func (p FloatArray) Len() int { return len(p); }
-func (p FloatArray) Less(i, j int) bool { return p[i] < p[j]; }
-func (p FloatArray) Swap(i, j int) { p[i], p[j] = p[j], p[i]; }
+func (p FloatArray) Len() int {
+ return len(p);
+}
+func (p FloatArray) Less(i, j int) bool {
+ return p[i] < p[j];
+}
+func (p FloatArray) Swap(i, j int) {
+ p[i], p[j] = p[j], p[i];
+}
type StringArray []string
-func (p StringArray) Len() int { return len(p); }
-func (p StringArray) Less(i, j int) bool { return p[i] < p[j]; }
-func (p StringArray) Swap(i, j int) { p[i], p[j] = p[j], p[i]; }
+func (p StringArray) Len() int {
+ return len(p);
+}
+func (p StringArray) Less(i, j int) bool {
+ return p[i] < p[j];
+}
+func (p StringArray) Swap(i, j int) {
+ p[i], p[j] = p[j], p[i];
+}
// Convenience wrappers for common cases
-func SortInts(a []int) { Sort(IntArray(a)); }
-func SortFloats(a []float) { Sort(FloatArray(a)); }
-func SortStrings(a []string) { Sort(StringArray(a)); }
+func SortInts(a []int) {
+ Sort(IntArray(a));
+}
+func SortFloats(a []float) {
+ Sort(FloatArray(a));
+}
+func SortStrings(a []string) {
+ Sort(StringArray(a));
+}
-func IntsAreSorted(a []int) bool { return IsSorted(IntArray(a)); }
-func FloatsAreSorted(a []float) bool { return IsSorted(FloatArray(a)); }
-func StringsAreSorted(a []string) bool { return IsSorted(StringArray(a)); }
+func IntsAreSorted(a []int) bool {
+ return IsSorted(IntArray(a));
+}
+func FloatsAreSorted(a []float) bool {
+ return IsSorted(FloatArray(a));
+}
+func StringsAreSorted(a []string) bool {
+ return IsSorted(StringArray(a));
+}
diff --git a/doc/progs/sortmain.go b/doc/progs/sortmain.go
index 63d68ff05..9f1a58ce5 100644
--- a/doc/progs/sortmain.go
+++ b/doc/progs/sortmain.go
@@ -14,7 +14,7 @@ func ints() {
a := sort.IntArray(data);
sort.Sort(a);
if !sort.IsSorted(a) {
- panic()
+ panic();
}
}
@@ -23,42 +23,48 @@ func strings() {
a := sort.StringArray(data);
sort.Sort(a);
if !sort.IsSorted(a) {
- panic()
+ panic();
}
}
type day struct {
- num int;
- short_name string;
- long_name string;
+ num int;
+ short_name string;
+ long_name string;
}
type dayArray struct {
data []*day;
}
-func (p *dayArray) Len() int { return len(p.data); }
-func (p *dayArray) Less(i, j int) bool { return p.data[i].num < p.data[j].num; }
-func (p *dayArray) Swap(i, j int) { p.data[i], p.data[j] = p.data[j], p.data[i]; }
+func (p *dayArray) Len() int {
+ return len(p.data);
+}
+func (p *dayArray) Less(i, j int) bool {
+ return p.data[i].num < p.data[j].num;
+}
+func (p *dayArray) Swap(i, j int) {
+ p.data[i], p.data[j] = p.data[j], p.data[i];
+}
func days() {
- Sunday := day{ 0, "SUN", "Sunday" };
- Monday := day{ 1, "MON", "Monday" };
- Tuesday := day{ 2, "TUE", "Tuesday" };
- Wednesday := day{ 3, "WED", "Wednesday" };
- Thursday := day{ 4, "THU", "Thursday" };
- Friday := day{ 5, "FRI", "Friday" };
- Saturday := day{ 6, "SAT", "Saturday" };
+ Sunday := day{0, "SUN", "Sunday"};
+ Monday := day{1, "MON", "Monday"};
+ Tuesday := day{2, "TUE", "Tuesday"};
+ Wednesday := day{3, "WED", "Wednesday"};
+ Thursday := day{4, "THU", "Thursday"};
+ Friday := day{5, "FRI", "Friday"};
+ Saturday := day{6, "SAT", "Saturday"};
data := []*day{&Tuesday, &Thursday, &Wednesday, &Sunday, &Monday, &Friday, &Saturday};
a := dayArray{data};
sort.Sort(&a);
if !sort.IsSorted(&a) {
- panic()
+ panic();
}
for _, d := range data {
- fmt.Printf("%s ", d.long_name)
+ fmt.Printf("%s ", d.long_name);
}
- fmt.Printf("\n")
+ fmt.Printf("\n");
}
diff --git a/doc/progs/strings.go b/doc/progs/strings.go
index 2c4937e38..3a3d61f47 100644
--- a/doc/progs/strings.go
+++ b/doc/progs/strings.go
@@ -9,7 +9,9 @@ import "os"
func main() {
s := "hello";
- if s[1] != 'e' { os.Exit(1) }
+ if s[1] != 'e' {
+ os.Exit(1);
+ }
s = "good bye";
var p *string = &s;
*p = "ciao";
diff --git a/doc/progs/sum.go b/doc/progs/sum.go
index f087ca3e5..1194230f8 100644
--- a/doc/progs/sum.go
+++ b/doc/progs/sum.go
@@ -6,16 +6,16 @@ package main
import "fmt"
-func sum(a []int) int { // returns an int
+func sum(a []int) int { // returns an int
s := 0;
for i := 0; i < len(a); i++ {
- s += a[i]
+ s += a[i];
}
- return s
+ return s;
}
func main() {
- s := sum(&[3]int{1,2,3}); // a slice of the array is passed to sum
+ s := sum(&[3]int{1, 2, 3}); // a slice of the array is passed to sum
fmt.Print(s, "\n");
}