golang第一篇

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

介紹

Go是Google開發的一種編譯型,可平行化,並具有記憶體回收功能的程式設計語言。

羅布·派克(Rob Pike),羅伯特·格瑞史莫(Robert Griesemer),及肯·湯普遜(unix的創造者)於2007年9月開始設計Go語言,稍後Ian Lance Taylor, Russ Cox加入項目中。Go語言是基於Inferno作業系統所開發的。Go語言於2009年11月正式宣布推出,成為開放原始碼項目,並在Linux及Mac OS X平台上進行了實現,後追加Windows系統下的實現。

 

描述

Go語言的文法接近C語言,但是對於變數的聲明是不同的,其他文法不同之處是For迴圈和if判斷語句不需要用小括弧括起來。Go語言支援記憶體回收功能。Go語言的並行模型是以東尼·霍爾的通訊順序進程(CSP)為基礎,採取類似模型的其他語言套件括Occam和Limbo,但它也具有Pi運算的特徵,比如通道傳輸。

與C++相比,Go語言並不包括如異常處理、繼承、泛型、斷言、虛函數等功能,但增加了slice型、並發、渠道、記憶體回收、介面(interface)等特性的語言級支援。當然,Google對於泛型的態度還是很開放的,但在該語言的常見問題列表中,對於斷言的存在,則持負面態度,同時也為自己不提供類型繼承來辯護。不同於Java,Go語言內嵌了關聯陣列(也稱為雜湊表(hashes)或字典(dictionaries)),就像字串類型一樣。

 

go語言已經有了不少的優秀項目,如現在流行的docker就是用golang編寫的。推薦一個連結瞭解更多http://www.open-open.com/lib/view/open1396063913278.html

 

安裝配置

下載

https://golang.org/dl/

 

環境變數

GOROOT

PATH win32:  %GOROOT%/bin

         linux:     $GOROOT/bin

 

推薦編輯器vim

推薦IDE: LiteIDE

 

程式樣本

HelloWorld!

package mainimport "fmt"func main() {fmt.Println("Hello, World")}

  

goroutine多線程並行

// goroutine project main.gopackage mainimport ("fmt")func f(from string){for i := 0;i<3;i++{fmt.Println(from,":",i)}}func main() {f("direct")go f("goroutine")go func(msg string){fmt.Println(msg)}("going")var input stringfmt.Scanln(&input)fmt.Println("done")}

運行結果:

 

golang調用系統命令echo helloworld

package mainimport (    "fmt"    "os/exec"    "sync"    "strings")func exe_cmd(cmd string, wg *sync.WaitGroup) {    fmt.Println(cmd)            parts := strings.Fields(cmd)    out, err := exec.Command(parts[0],parts[1]).Output()    if err != nil {        fmt.Println("error occured")        fmt.Printf("%s", err)    }    fmt.Printf("%s", out)    wg.Done()}func main() {    wg := new(sync.WaitGroup)    commands := []string{"echo HelloWorld"}    for _, str := range commands {        wg.Add(1)        go exe_cmd(str, wg)    }    wg.Wait()}

  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.