Welcome to Wisdom's Blog

胜日寻芳泗水滨,无边光景一时新。等闲识得东风面,万紫千红总是春。

GOLANG的类型断言

package main
import(
	"fmt"
	_"sort"
	_"math/rand"
)

func main(){
	//类型断言:在x空接口转换为y的类型float32时候,采用x.(float)断言是可以转换成功的,因为y在赋值给x的时候,原类型就是float32类型
	var x interface{}
	var y float32 = 3.2
	x = y
	b := x.(float32)
	fmt.Printf("b 的类型是%T,b的值是%v \n" ,b,b) 
	//类型断言,检测机制,使用if进行判断是否类型匹配,如果匹配 Flag接受到的就是true,否则为flase,默认接收就是bool值,所以不需要if Flag == true {}。
	var A interface{}
	var B float64 = 6.8
	A = B
	Z, Flag := A.(float32)
	if Flag{
		fmt.Printf("转换成功···\n")
		fmt.Printf("Z 的类型是%T,Z的值是%v",Z,Z)
	}else {
		fmt.Printf("转换失败···\n")
	}
	fmt.Printf("继续执行下面的代码块,不中断···")
}

终端结果

 

posted on 2019-05-09 11:29  欧小白  阅读(594)  评论(0)    收藏  举报

导航