<p>
<pre> <!-- progs/helloworld.go /package/ END -->
05 package main
-<p>
+
07 import fmt "fmt" // Package implementing formatted I/O.
-<p>
+
09 func main() {
10 fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n")
11 }
<p>
<pre> <!-- progs/echo.go /package/ END -->
05 package main
-<p>
+
07 import (
08 "os"
09 "flag" // command line option parser
10 )
-<p>
+
12 var omitNewline = flag.Bool("n", false, "don't print final newline")
-<p>
+
14 const (
15 Space = " "
16 Newline = "\n"
17 )
-<p>
+
19 func main() {
20 flag.Parse() // Scans the arg list and sets up flags
21 var s string = ""
<p>
<pre> <!-- progs/file.go /package/ /^}/ -->
05 package file
-<p>
+
07 import (
08 "os"
09 "syscall"
10 )
-<p>
+
12 type File struct {
13 fd int // file descriptor number
14 name string // file name at Open time
41 O_CREATE = syscall.O_CREAT
42 O_TRUNC = syscall.O_TRUNC
43 )
-<p>
+
45 func Open(name string) (file *File, err os.Error) {
46 return OpenFile(name, O_RDONLY, 0)
47 }
61 }
62 return nil
63 }
-<p>
+
65 func (file *File) Read(b []byte) (ret int, err os.Error) {
66 if file == nil {
67 return -1, os.EINVAL
72 }
73 return int(r), err
74 }
-<p>
+
76 func (file *File) Write(b []byte) (ret int, err os.Error) {
77 if file == nil {
78 return -1, os.EINVAL
83 }
84 return int(r), err
85 }
-<p>
+
87 func (file *File) String() string {
88 return file.name
89 }
<p>
<pre> <!-- progs/helloworld3.go /package/ END -->
05 package main
-<p>
+
07 import (
08 "./file"
09 "fmt"
10 "os"
11 )
-<p>
+
13 func main() {
14 hello := []byte("hello, world\n")
15 file.Stdout.Write(hello)
<p>
<pre> <!-- progs/cat.go /package/ END -->
05 package main
-<p>
+
07 import (
08 "./file"
09 "flag"
10 "fmt"
11 "os"
12 )
-<p>
+
14 func cat(f *file.File) {
15 const NBUF = 512
16 var buf [NBUF]byte
29 }
30 }
31 }
-<p>
+
33 func main() {
34 flag.Parse() // Scans the arg list and sets up flags
35 if flag.NArg() == 0 {
31 type rotate13 struct {
32 source reader
33 }
-<p>
+
35 func newRotate13(source reader) *rotate13 {
36 return &rotate13{source}
37 }
-<p>
+
39 func (r13 *rotate13) Read(b []byte) (ret int, err os.Error) {
40 r, e := r13.source.Read(b)
41 for i := 0; i < r; i++ {
43 }
44 return r, e
45 }
-<p>
+
47 func (r13 *rotate13) String() string {
48 return r13.source.String()
49 }
52 func cat(r reader) {
53 const NBUF = 512
54 var buf [NBUF]byte
-<p>
+
56 if *rot13Flag {
57 r = newRotate13(r)
58 }
<p>
<pre> <!-- progs/sort.go /type.*IntArray/ /Swap/ -->
33 type IntArray []int
-<p>
+
35 func (p IntArray) Len() int { return len(p) }
36 func (p IntArray) Less(i, j int) bool { return p[i] < p[j] }
37 func (p IntArray) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
32 shortName string
33 longName string
34 }
-<p>
+
36 type dayArray struct {
37 data []*day
38 }
-<p>
+
40 func (p *dayArray) Len() int { return len(p.data) }
41 func (p *dayArray) Less(i, j int) bool { return p.data[i].num < p.data[j].num }
42 func (p *dayArray) Swap(i, j int) { p.data[i], p.data[j] = p.data[j], p.data[i] }
10 a int
11 b string
12 }
-<p>
+
14 func (t *testType) String() string {
15 return fmt.Sprint(t.a) + " " + t.b
16 }
-<p>
+
18 func main() {
19 t := &testType{77, "Sunset Strip"}
20 fmt.Println(t)
<p>
<pre> <!-- progs/server.go /type.binOp/ /^}/ -->
14 type binOp func(a, b int) int
-<p>
+
16 func run(op binOp, req *request) {
17 reply := op(req.a, req.b)
18 req.replyc <- reply