go裏面的類型斷言寫法:
x.(T)
其中x爲interface{}類型 T是要斷言的類型。
類型斷言有個非常好的使用場景:當某個類型爲interface{}的變量,真實類型爲A時,才做某件事時,這時可以使用類型斷言
下面有個例子。只有當某個interface{}的類型 存儲的是int時纔打印出來。
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
var v interface{}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := 0; i < 10; i++{
v = i
if (r.Intn(100) % 2) == 0 {
v = "hello"
}
if _, ok := v.(int); ok {
fmt.Printf("%d\n", v)
}
}
}