go語言初記

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

快速瞭解 http://go-tour-zh.appspot.com/welcome/1 (可以需要爬牆)

下面記錄下瞭解go的過程,特別記錄下與你腦子裡原有“觀念”不同的地方:

1.  聲名 初始化,類型在後面,不一樣

var a, b int var a,b =1,2

var c, python, java = true, false, "no!"a,b:=func fname(string,string) //非聲明,必須在func使用

短聲明變數

函數中,`:=` 簡潔指派陳述式在明確類型的地方,可以用於替代 var 定義。

函數外的每個文法塊都必須以關鍵字開始(`var`、`func`、等等),`:=` 結構不能使用在函數外。

 

2.函數返回多個值

func swap(x, y string) (string, string) {  //x, y string 等價  x sring ,y string
  return y, x 
}

命名傳回值

func swap(string, string) (x, y string) { #傳回值分別命名為x,y 
  x= x+12
  y= y+1
  return 
} // 空return實際返回的是x,y

3.對於聲明了但沒使用的變數,引入但沒有使用的包,會引發錯誤,  go可以自動格式化源碼  

func 函數體的第一個'{'必須在同一行(?試了不在一行格式不行,運行出錯)

 

4.包

每個 Go 程式都是由包組成的。

程式啟動並執行入口是包 `main`。

package mainimport ("fmt""math/rand")func main() {fmt.Println("My favorite number is", rand.Intn(10)) //先不管rand.Intn幹什麼的,按照慣例,包名與匯入路徑的最後一個目錄一致。例如,`"math/rand"` 包由 package rand 語句開始}

 

注意:匯出名

在匯入了一個包之後,就可以用其匯出的名稱來調用它。

在 Go 中,首字母大寫的名稱是被匯出的。(算是一種慣例/約定,如python裡_function _varname是私人一樣) 

package mainimport ("fmt""math")func main() {fmt.Println(math.pi)}

Foo 和 FOO 都是被匯出的名稱。名稱 foo 是不會被匯出的 ,所以math.pi肯定不存在,可能Pi是存在的

 

5.基本類型

Go 的基本類型有Basic types

boolstringint  int8  int16  int32  int64uint uint8 uint16 uint32 uint64 uintptrbyte // uint8 的別名rune // int32 的別名// 代表一個Unicode碼float32 float64complex64 complex128

package mainimport ("fmt""math/cmplx")var (                                     //這樣用很特別ToBe   bool       = falseMaxInt uint64     = 1<<64 - 1z      complex128 = cmplx.Sqrt(-5 + 12i))func main() {const f = "%T(%v)\n"fmt.Printf(f, ToBe, ToBe)      //bool(false)
     fmt.Printf(f, MaxInt, MaxInt) //uint64(18446744073709551615)
fmt.Printf(f, z, z)       //complex128((2+3i)) 不懂
}

 

6.類型轉換 不同類型間轉換需要顯式進行,即使從int往int64轉也得顯式 (c是可以隱式轉換的,溢出不提示)

 

7.迴圈只有for ,沒有 while ,通過省略for的首尾式可以做到while一樣的事 :for i < 10 {}   

 

相關文章

聯繫我們

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