1. 程式人生 > 其它 >Go 筆記(一)

Go 筆記(一)

Go 語言之旅

golang 從main包開始

導包使用import 關鍵字

  • 單個匯入
  • 多個匯入

匯出名,在別的package下呼叫,使用大寫表示匯出名

函式

  • func func_name(param1, param2 Type) Type

  • 函式名,引數型別,返回值型別

  • 引數型別相同時,可以只寫一個引數型別,編譯器代做推斷,果然是大道至簡

  • 可以返回多個值

  • 命名返回值,返回值可以直接在函式定義的時間進行命名

  • 變數,使用var 宣告

  • 變數初始化,如果初始值存在,可以省略型別不寫,大道至簡,golang來幫你實現

  • 短變數宣告 number := 100 不能在函式外使用

  • 基本資料型別

    • bool
    • string
    • int
    • int8
    • int16
    • int32
    • int64
    • unit
    • unit8
    • unit16
    • unit32
    • unit64
    • uintptr
    • byte
    • rune
    • float32
    • float64
    • complex64
    • complex128
  • 型別轉換

    var i int = 42
    var f float64  = float64()
    var u uint = uint(f)
    
    //或者
    i := 42
    f := float64(i
    
  • const 關鍵字

控制結構

  • for 迴圈

    package main
    
    import "fmt"
    
    func main() {
    	sum := 0
    	for i := 0; i < 10; i++ {
    		sum += i
    	}
    	fmt.Println(sum)
    }
    // "while"
    package main
    
    import "fmt"
    
    func main() {
    	sum := 1
    	for sum < 1000 {
    		sum += sum
    	}
    	fmt.Println(sum)
    }
    
  • for{} 無線迴圈

  • if condition {}

    • else
  • switch: go自動提供了每個case 後面的break

  • 沒有條件的 switch 同 switch true 一樣

  • defer 語句會將函式推遲到外層函式返回之後執行

  • 推遲的函式呼叫會被壓入一個棧中。當外層函式返回時,被推遲的函式會按照後進先出的順序呼叫