天天看點

21.Go-靜态類型與動态類型

21.1 靜态類型(static type)

靜态類型就是變量聲明時候的類型。例如:

// int 是靜态類型
var number int
// string 也是靜态類型
var name string
           

21.2 動态類型(concrete type)

動态類型是程式運作時系統才能看見的類型。例如:

// in 的靜态類型為 interface{}
var in interface{}
// in 的靜态類型為 interface{} 動态類型為 int
in = 100
// in 的靜态類型為 interface{} 動态類型為 string
in = "《從0到Go語言微服務架構師訓練營》"
           

通過上面的例子,可以看到我們定義了一個空接口

in

,它的靜态類型永遠是

interface{}

,但它可以接受任何類型,接受整型資料時,它的動态類型就為

int

;接受字元串型資料時,它的動态類型就變為

string

21.3 接口組成

var number int = 100
           
package main

import "fmt"

func main() {
    number := (int)(100)
    // 或者寫成 number := (interface{})(100)
    fmt.Printf("number type: %T, data: %v", number, number)
}
           
number type: int, data: 100
           

繼續閱讀