]> Cypherpunks repositories - gostls13.git/commitdiff
casify tutorial examples
authorRob Pike <r@golang.org>
Fri, 16 Jan 2009 01:54:07 +0000 (17:54 -0800)
committerRob Pike <r@golang.org>
Fri, 16 Jan 2009 01:54:07 +0000 (17:54 -0800)
will bring document in line in a later CL, which may include revisiting some of the names

R=rsc
DELTA=58  (0 added, 0 deleted, 58 changed)
OCL=22906
CL=22908

doc/progs/cat_rot13.go
doc/progs/echo.go
doc/progs/fd.go
doc/progs/print_string.go
doc/progs/server1.go
doc/progs/sieve.go
doc/progs/sieve1.go
doc/progs/sortmain.go

index 1868c6f0e8236c25e263f102fdab7b8ccea88b16..db0a32fa64fd2296b08ce0d56968acdf2690d5c0 100644 (file)
@@ -22,20 +22,20 @@ func rot13(b byte) byte {
        return b
 }
 
-type Reader interface {
+type reader interface {
        Read(b []byte) (ret int, err *os.Error);
        String() string;
 }
 
-type Rot13 struct {
-       source  Reader;
+type rotate13 struct {
+       source  reader;
 }
 
-func NewRot13(source Reader) *Rot13 {
-       return &Rot13{source}
+func newRotate13(source reader) *rotate13 {
+       return &rotate13{source}
 }
 
-func (r13 *Rot13) Read(b []byte) (ret int, err *os.Error) {
+func (r13 *rotate13) Read(b []byte) (ret int, err *os.Error) {
        r, e := r13.source.Read(b);
        for i := 0; i < r; i++ {
                b[i] = rot13(b[i])
@@ -43,17 +43,17 @@ func (r13 *Rot13) Read(b []byte) (ret int, err *os.Error) {
        return r, e
 }
 
-func (r13 *Rot13) String() string {
+func (r13 *rotate13) String() string {
        return r13.source.String()
 }
-// end of Rot13 implementation
+// end of Rotate13 implementation
 
-func cat(r Reader) {
+func cat(r reader) {
        const NBUF = 512;
        var buf [NBUF]byte;
 
        if *rot13_flag {
-               r = NewRot13(r)
+               r = newRotate13(r)
        }
        for {
                switch nr, er := r.Read(buf); {
index 71711bfc0c07d975bc3449ec8295714b5da2645e..3ddb4f83e20ed6ad6bd5a5033ae716f2cd5697c1 100644 (file)
@@ -12,8 +12,8 @@ import (
 var n_flag = flag.Bool("n", false, "don't print final newline")
 
 const (
-       Space = " ";
-       Newline = "\n";
+       kSpace = " ";
+       kNewline = "\n";
 )
 
 func main() {
@@ -21,12 +21,12 @@ func main() {
        var s string = "";
        for i := 0; i < flag.NArg(); i++ {
                if i > 0 {
-                       s += Space
+                       s += kSpace
                }
                s += flag.Arg(i)
        }
        if !*n_flag {
-               s += Newline
+               s += kNewline
        }
        os.Stdout.WriteString(s);
 }
index 4c3ac158758e42e9e45f3ccbd45ecdf6b4018afe..ef94b082675732475c9175cade3a78016f612cf3 100644 (file)
@@ -14,7 +14,7 @@ export type FD struct {
        name    string; // file name at Open time
 }
 
-func NewFD(fd int64, name string) *FD {
+func newFD(fd int64, name string) *FD {
        if fd < 0 {
                return nil
        }
@@ -22,14 +22,14 @@ func NewFD(fd int64, name string) *FD {
 }
 
 export var (
-       Stdin  = NewFD(0, "/dev/stdin");
-       Stdout = NewFD(1, "/dev/stdout");
-       Stderr = NewFD(2, "/dev/stderr");
+       Stdin  = newFD(0, "/dev/stdin");
+       Stdout = newFD(1, "/dev/stdout");
+       Stderr = newFD(2, "/dev/stderr");
 )
 
 export func Open(name string, mode int64, perm int64) (fd *FD, err *os.Error) {
        r, e := syscall.open(name, mode, perm);
-       return NewFD(r, name), os.ErrnoToError(e)
+       return newFD(r, name), os.ErrnoToError(e)
 }
 
 func (fd *FD) Close() *os.Error {
index c435d4eaeb8fdece857e9895e2c1a4021306d59f..13a8d824189d7e05b0bf14f4284c3d726bd87320 100644 (file)
@@ -6,13 +6,13 @@ package main
 
 import "fmt"
 
-type T struct { a int; b string }
+type testType struct { a int; b string }
 
-func (t *T) String() string {
+func (t *testType) String() string {
        return fmt.Sprint(t.a) + " " + t.b
 }
 
 func main() {
-       t := &T{77, "Sunset Strip"};
+       t := &testType{77, "Sunset Strip"};
        fmt.Println(t)
 }
index b7e489d46dda51893454055a05bb92176e2f5c20..a547f6af00ec87e1f0a9165b8ed90fc74be854cf 100644 (file)
@@ -4,40 +4,40 @@
 
 package main
 
-type Request struct {
+type request struct {
        a, b    int;
        replyc  chan int;
 }
 
-type BinOp (a, b int) int;
+type binOp (a, b int) int;
 
-func Run(op *BinOp, request *Request) {
+func run(op *binOp, request *request) {
        result := op(request.a, request.b);
        request.replyc <- result;
 }
 
-func Server(op *BinOp, service chan *Request, quit chan bool) {
+func server(op *binOp, service chan *request, quit chan bool) {
        for {
                select {
-               case request := <-service:
-                       go Run(op, request);  // don't wait for it
+               case req := <-service:
+                       go run(op, req);  // don't wait for it
                case <-quit:
                        return;
                }
        }
 }
 
-func StartServer(op *BinOp) (service chan *Request, quit chan bool) {
-       service = make(chan *Request);
+func startServer(op *binOp) (service chan *request, quit chan bool) {
+       service = make(chan *request);
        quit = make(chan bool);
-       go Server(op, service, quit);
+       go server(op, service, quit);
        return service, quit;
 }
 
 func main() {
-       adder, quit := StartServer(func(a, b int) int { return a + b });
+       adder, quit := startServer(func(a, b int) int { return a + b });
        const N = 100;
-       var reqs [N]Request;
+       var reqs [N]request;
        for i := 0; i < N; i++ {
                req := &reqs[i];
                req.a = i;
index 22e14535e30107df626ef93bc198333a9c04c61b..1e472948e5d44ccfc5166047f8146d6725d2aaf3 100644 (file)
@@ -5,7 +5,7 @@
 package main
 
 // Send the sequence 2, 3, 4, ... to channel 'ch'.
-func Generate(ch chan int) {
+func generate(ch chan int) {
        for i := 2; ; i++ {
                ch <- i  // Send 'i' to channel 'ch'.
        }
@@ -13,7 +13,7 @@ func Generate(ch chan int) {
 
 // Copy the values from channel 'in' to channel 'out',
 // removing those divisible by 'prime'.
-func Filter(in, out chan int, prime int) {
+func filter(in, out chan int, prime int) {
        for {
                i := <-in;  // Receive value of new variable 'i' from 'in'.
                if i % prime != 0 {
@@ -25,12 +25,12 @@ func Filter(in, out chan int, prime int) {
 // 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.
+       go generate(ch);  // Start Generate() as a goroutine.
        for {
                prime := <-ch;
                print(prime, "\n");
                ch1 := make(chan int);
-               go Filter(ch, ch1, prime);
+               go filter(ch, ch1, prime);
                ch = ch1
        }
 }
index 3f2cb9eac3a84661f0c168ab41c4d8037f55435a..c9b27f0612df52d6d85e07e333c92f105f2d6c33 100644 (file)
@@ -5,7 +5,7 @@
 package main
 
 // Send the sequence 2, 3, 4, ... to returned channel 
-func Generate() chan int {
+func generate() chan int {
        ch := make(chan int);
        go func(ch chan int){
                for i := 2; ; i++ {
@@ -16,7 +16,7 @@ func Generate() chan int {
 }
 
 // Filter out input values divisible by 'prime', send rest to returned channel
-func Filter(in chan int, prime int) chan int {
+func filter(in chan int, prime int) chan int {
        out := make(chan int);
        go func(in chan int, out chan int, prime int) {
                for {
@@ -28,21 +28,21 @@ func Filter(in chan int, prime int) chan int {
        return out;
 }
 
-func Sieve() chan int {
+func sieve() chan int {
        out := make(chan int);
        go func(out chan int) {
-               ch := Generate();
+               ch := generate();
                for {
                        prime := <-ch;
                        out <- prime;
-                       ch = Filter(ch, prime);
+                       ch = filter(ch, prime);
                }
        }(out);
        return out;
 }
 
 func main() {
-       primes := Sieve();
+       primes := sieve();
        for {
                print(<-primes, "\n");
        }
index 3f0c891e6d360e65b1a855dccd7bb9017440ec53..74d1d184087e013813d3d777d544b2b3dc909443 100644 (file)
@@ -24,30 +24,30 @@ func strings() {
        }
 }
 
-type Day struct {
+type day struct {
        num        int;
        short_name string;
        long_name  string;
 }
 
-type DayArray struct {
-       data []*Day;
+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" };
-       data := []*Day{&Tuesday, &Thursday, &Sunday, &Monday, &Friday};
-       a := DayArray{data};
+       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, &Sunday, &Monday, &Friday};
+       a := dayArray{data};
        sort.Sort(&a);
        if !sort.IsSorted(&a) {
                panic()