教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 GoLang 类型转换和类型断言

GoLang 类型转换和类型断言

发布时间:2023-03-17   编辑:jiaochengji.com
教程集为您提供GoLang 类型转换和类型断言等资源,欢迎您收藏本站,我们将为您提供最新的GoLang 类型转换和类型断言资源
  1. Go语言中的强制类型转换 与 C语言的区别是:
    • char b = 9; int a = (int)b; _注意:此处括号中为将强制转换的类型_ ;
    • var Byte b = 9 var uint a = int(b) _注意:此处括号中为 将要转换的值_

  2. 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)
      }
  3. 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

[关闭]
~ ~