User Tools

Site Tools


cs_lang:go

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
cs_lang:go [2012/04/21 08:57] cedriccs_lang:go [2012/04/30 09:23] cedric
Line 1: Line 1:
 ====== Learning Go ====== ====== Learning Go ======
   * [[http://tour.golang.org/ | A Tour of Go]].   * [[http://tour.golang.org/ | A Tour of Go]].
 +
 +
 +
 +====== Simple examples ======
 +===== Sum the elements of a list =====
 +
 +<code go>
 +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)
 +}
 +</code>
 +
 +
 +===== Fork bomb =====
 +<code go>
 +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)
 +    }
 +}
 +</code>
 +
  
 ====== Books ====== ====== Books ======
cs_lang/go.txt · Last modified: 2014/04/18 23:19 by cedric