Go聖經-學習筆記入門

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

Hello,world

Go語言不需要在語句或者聲明的末尾加上分號,除非上一上有多條語句。實際上,編譯器會主動把特定符號後的分行符號轉換為分號,因此分行符號添加的位置會影響Go代碼的正確解析。

下面這個例子,行尾的,使得編譯器不會添加分號,則這個fmt.Printf是一個完整的行,這樣寫也比較美觀。你不能把,放在下一行。

fmt.Prinf("hello, %s。Welcome to %s",     name, country)

如果你想要一個Linux VIM編輯器下整合一個IDE,你需要安裝一個vim-go的外掛程式。如果安裝ok,則會像我的環境一樣,如下:

聲明一個變數有幾種方式:

temp:=""var temp string = ""var temp = ""var temp string

重點強調第一方式,它最簡潔,但只能用於函數或者方法內部,不用應用在包層級的變數聲明

package mainimport (    "fmt")temp:=""func main(){    fmt.Println(temp)}

編譯無法通過,報錯資訊 expected declaration, found 'IDENT'

注意事項

運用go語言編程時,開發人員應該盡量使用官方標準庫,避免重複造輪子, 提高開發效率,同時又啟動並執行程式在時間和空間複雜度上有比較好。

下面有一個關於拼接字串的DEMO:

package mainimport (    "fmt")func main(){    s, sep:= "", ""    // 第一種方式:    for _, arg:= os.Args[1:]{        s+=sep+arg        sep = " "    }    fmt.Println(s)        // 使用官方標準庫的方式    fmt.Println(strings.Join(os.Args[1:], " "))}

貼出官方strings.Join標準庫方法的部分代碼實現:

func Join(a []string, sep string) string{    // 省略部分程式碼片段    n:= len(sep)*(len(a)-1) // sep所佔用空間的整個長度    for i:=0;i<len(a);i++{        n+=len(a[i])    }        b:= make([]byte, n)    bp:=copy(b, a[0])    for _, s := range a[1:]{        bp+=copy(b[bp:], sep)        bp+=copy(b[bp:], s)    }    return string(b)}

總結:使用標準庫,節約了記憶體空間和時間。它是一次性分配記憶體空間,不需要反覆分配和釋放記憶體,記憶體配置可能會發生記憶體頁大小不夠,導致缺頁的情況,非常耗時

相關文章

聯繫我們

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