1. 程式人生 > >[golang] interface{}

[golang] interface{}

golang中interface的作用和java的interface的作用很像,雖然go號稱使用組合的方式來實現oo,沒有像java那樣顯示繼承一個interface。

本文講解另一個功能,inerface{ }。
interface{}是一類特殊的介面,類似於Java的Object,它是所有物件的基類。所有型別變數都可以賦值給它。


func f(x interface{}) {
    val := int(x)
    fmt.Println(val)
}

cannot convert x (type interface {}) to type int: need type assertion

func
f(x interface{}) { if v1, ok := x.(int); ok { fmt.Println(v1) } else if v2, ok := x.(string); ok { fmt.Println(v2) } } func main() { f(2) f("hello") } 2 hello