【每日知識】go語言基本語法 2018-06-09

weixin_34146805發表於2018-06-09

變數

變數的宣告:
      var a int
      a = 10
      fmt.Println("a=", a)
      var b = 20
      fmt.Println("b =", b)
      c := 30//自動推導型別 
      fmt.Println("c=", c)

Println和Printf的區別

a := 12
b, c := 13, 14
fmt.Println(a, b, c) //有自動換行的功能
fmt.Printf("%d \n %d \n %d", a, b, c) //列印字串"%d%d%d",同時用a,b,c的值替換%d //'\n'為換行的意思

多重賦值、函式呼叫和匿名變數

func main() {
    i, j := 11, 22
    i, j = j, i //多重賦值
    fmt.Printf("i=%d j=%d\n", i, j)
    var d, e, f int
    d, e, f = test() //函式的呼叫
    fmt.Printf("d=%d e=%d f=%d\n", d, e, f)
    var g int
    g, _ = i, j //匿名變數
    fmt.Println("g=", g)
    d, _, f = test()
    fmt.Println("d=", d, "f=", f)
}
func test() (a, b, c int) {
    return 1, 2, 3
}

常量和iota列舉

const a int = 10 //常量只能初始化,不可再賦值:a = 10
const b = 1.2 //自動推導型別不需要加“:”
fmt.Println("a=", a)
fmt.Printf("%T", b)//%T是列印型別的意思
const ( //專門給常量用的,從0開始累加
    a = iota
    b = iota
    c = iota
)
 fmt.Printf("a=%d b=%d c=%d\n", a, b, c)
 const d = iota //遇到const歸零
 fmt.Println("d=", d)
 const (
     a1 = iota //可以省略後面的iota
     b1
     c1
     d1, e1, f1 = iota, iota, iota //同一行的值都是一樣的
)
 fmt.Printf("a1=%d b1=%d c1=%d d1=%d e1=%d f1=%d", a1, b1, c1, d1, e1, f1)

bool型別

var a bool//初始值為false
fmt.Println("a0=", a)
a = true
fmt.Println("a=", a)
b := true
fmt.Println("b=", b)

浮點型

var a float32
a = 3.14
fmt.Println("a=", a)
b := 3.14 //自動推導的型別為float64
fmt.Printf("b type is %T", b)

相關文章