User Tools

Site Tools


cs_lang:go

This is an old revision of the document!


Learning Go

Simple examples

Sum the elements of a list

package main
 
import "fmt"
 
func sum(a []int, c chan int) {
    sum := 0
    for _, v := range a {
        sum += v
    }
    c <- sum  // send sum to c
}
 
func main() {
    a := []int{7, 2, 8, -9, 4, 0}
 
    c := make(chan int)
    go sum(a[:len(a)/2], c)
    go sum(a[len(a)/2:], c)
    x, y := <-c, <-c
 
    fmt.Println(x, y, x + y)
}

Fork bomb

package main
 
import "fmt"
 
func main() {
    c := make(chan bool)
    go func() {
        count := 0
        for <- c {
            count++
            fmt.Println(count)
        }
    }()
    bomb(c)
}
 
func bomb(tick chan bool) {
    for {
        tick <- true
        go bomb(tick)
    }
}

Books

<html> <div id=“w7807c19744300a8f904b3ca228f92656”></div><script type=“text/javascript” charset=“UTF-8” src=“http://www.librarything.com/widget_get.php?userid=cedricbonhomme&theID=w7807c19744300a8f904b3ca228f92656”></script><noscript><a href=“http://www.librarything.com/profile/cedricbonhomme”>My Library</a> at <a href=“http://www.librarything.com”>LibraryThing</a></noscript> </html>

Various resources.

cs_lang/go.1335770589.txt.gz · Last modified: 2012/04/30 09:23 by cedric