GoLang 类型转换和类型断言
发布时间:2023-03-17 编辑:jiaochengji.com
教程集为您提供GoLang 类型转换和类型断言等资源,欢迎您收藏本站,我们将为您提供最新的GoLang 类型转换和类型断言资源
- Go语言中的强制类型转换 与 C语言的区别是:
char b = 9; int a = (int)b; _注意:此处括号中为将强制转换的类型_ ;
var Byte b = 9 var uint a = int(b) _注意:此处括号中为 将要转换的值_
- Go 的类型断言和switch判断, 两种方式:
- Comma-ok断言的语法是:
value, ok := element.(T)
。element
必须是接口类型的变量,T
是普通类型。如果断言失败,ok
为false,否则ok
为true并且value为变量的值。来看个例子:_ - 例:
var In interface{}
var age int = 9
In = age
if value, ok := In.(int); ok{
fmt.Println("The In Type is int, value : ", value)
}
- Comma-ok断言的语法是:
- switch 进行类型判断:
package main
import "fmt"
type Speaker interface{
Say(msg string)
Listen(msg string) string
Interrupt(msg string)
}
type Wanglan struct{
msg string
}
type Jianglou struct{
msg string
}
func (this *Wanglan)Say(msg string){
fmt.Println("Wanglan Say : ", msg)
}
func (this *Wanglan)Listen(msg string) string{
this.msg = msg
return this.msg
}
func (this *Wanglan)Interrupt(msg string){
this.Say(msg)
}
func (this *Jianglou)Say(msg string){
fmt.Println("Wanglan Say : ", msg)
}
func (this *Jianglou)Listen(msg string)string{
this.msg = msg
return this.msg
}
func (this *Jianglou)Interrupt(msg string){
this.Say(msg)
}
func main(){
var W1 *Wanglan
var J1 *Jianglou
var S1 Speaker
S1 = W1
S1.Say("hello...")
S1 = J1
S1.Say("Good Luck...")
if value, OK := S1.(*Wanglan); OK{
fmt.Println("Wanglan Say : ", value)
}
if value, OK := S1.(*Jianglou); OK{
fmt.Println("Jianglou Say : ", value)
}
switch v := S1.(type){
case *Wanglan:
fmt.Println("Wanglan Say : ", v)
case *Jianglou:
fmt.Println("Jianglou Say : ", v)
default:
fmt.Println("No define type")
}
}
到此这篇关于“GoLang 类型转换和类型断言”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!
您可能感兴趣的文章:
goLang 类型断言 type assertion
Go语言的空接口,接口类型断言
golang判断变量的类型
golang中的nil
【Golang】go语言面向接口
Golang interface 接口要点梳理
2020-10-14Go语言基本类型:整型、浮点型、字符串
go interface类型转换_Golang系列5 | Interface接口&map类型
Golang interface赋值与取值的实例
Go语言接口interface
[关闭]