Go 語言教程實戰

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

安裝線上教程

由於牆,golang.org 國內無法訪問,其線上教程也一樣     tutorial.golang.org      http://go-tour-zh.appspot.com/


可以在本機運行,

先安裝Go 編譯器   http://code.google.com/p/go/downloads/list


然後安裝教程

go get code.google.com/p/go-tour/gotour

或者中文的

go get bitbucket.org/mikespook/go-tour-zh/gotour

最後執行安裝產生的 gotour 執行檔案,即可在http://localhost:3999 開啟教程。

一些練習的答案


#46  練習:費伯納西閉包

package mainimport "fmt"// fibonacci 函數會返回一個返回 int 的函數。func fibonacci() func() int {var a int = 1var b int = 1return func() int {c := a+ba = bb = creturn c}}func main() {f := fibonacci()for i := 0; i < 10; i++ {fmt.Println(f())}}


#69  練習:等價二叉樹

package mainimport ("bitbucket.org/mikespook/go-tour-zh/tree""fmt")/*type Tree struct {Left  *TreeValue intRight *Tree}*/// Walk 步進 tree t 將所有的值從 tree 發送到 channel ch。func Walk(t *tree.Tree, ch chan int) {if t != nil {Walk(t.Left, ch)ch <- t.ValueWalk(t.Right, ch)}}// Same 檢測樹 t1 和 t2 是否含有相同的值。func Same(t1, t2 *tree.Tree) bool {ch1 := make(chan int, 10)go Walk(t1, ch1)ch2 := make(chan int, 10)go Walk(t2, ch2)for i := 0; i < 10; i++ {if <-ch1 != <-ch2 {return false}}return true}func main() {fmt.Println(Same(tree.New(1), tree.New(1)))}


#57  練習:錯誤

package mainimport ("fmt")type ErrNegativeSqrt float64func (e ErrNegativeSqrt) Error() string {return fmt.Sprintf("cannot Sqrt negative number: %f",  e)}func Sqrt(f float64) (float64, error) {if f < 0 {return 0, ErrNegativeSqrt(f)}x := ffor i := 0; i < 10; i++ {x = (x + f/x) / 2}return x, nil}func main() {fmt.Println(Sqrt(2))fmt.Println(Sqrt(-2))}

#44  練習:Map


package mainimport (//"fmt""strings""bitbucket.org/mikespook/go-tour-zh/wc")func WordCount(s string) map[string]int {result := map[string]int {}f := strings.Fields(s)for _, v := range f {result[v] += 1}return result}func main() {wc.Test(WordCount)}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.