天天看點

Go 空接口類型,存儲任意類型資料

demo.go(空接口,存儲任意類型資料):

package main

import "fmt"

func main() {
	// 定義空接口類型變量 (可以接收任意類型的資料。相當于所有類型都實作了空接口)
	var i interface{}
	fmt.Printf("%T\n", i)  // <nil>

	i = 10   // int
	fmt.Println(i)  // 10
	fmt.Printf("%T\n", i)  // int
	// int(i) + 20 // 會報錯。 接口不能直接參與運算(類型轉換),需要使用類型斷言。

	i = 3.14   // float64
	fmt.Println(i)  // 3.14
	fmt.Printf("%T\n", i)  // float64

	i = "哈哈"  // string
	fmt.Println(i)  // 哈哈
	fmt.Printf("%T\n", i)  // string
}