var a T = (T) (b)
,使用括號將型別和要轉換的變數或表示式的值括起來。package main import{ "fmt" } type Map map[string]string func (m Map) Print() { for _, key := range m { fmt.Println (key) } } type iMap Map //只妥底層型別是 slice、map 等支援 range 的型別字面量,新型別仍然可以使用 range 疊代 func (m iMap) Print() { for _, key := range m { fmt.Println(key) } } func main() { mp := make(map[string]string, 10) mp["hi"] = "tata" //mp 與 ma 有相同的底層型別 map[string]stirng,並且 mp 是未命名型別 var ma Map = mp // im 與 ma 雖然有相同的底層型別,但是二者中沒有一個是字面量型別,不能直接賦佳,可以 // 強制進行型別轉換 //var im iMap = ma var im iMap = (iMap) (ma) ma.Print() im.Print() }3) x 的型別和 T 都是未命名的指標型別,並且指標指向的型別具有相同的底層型別。
s := "hello, 世界!"
var a []byte
a = []byte(s)
var b string
b = string(a)
var c []rune
c = []rune(s)
fmt.Printf("%Tn", a) //[]uint8 byte 是 int8 的別名
fmt.Printf("%Tn", b) //string
fmt.Printf("%Tn", c) //int32 rune 是 int32 的別名