美文网首页go Network
go语言中的类型断言与类型转换

go语言中的类型断言与类型转换

作者: shanggl | 来源:发表于2018-07-19 11:47 被阅读9次

在读他人源码的时候碰到一个自己没读懂的写法:

if r,ok:=w.(io.Reader);ok{
r.Read(&buffer)
}

其中,w 原来是个interface{} 对象指向一个自定义的输入输出插件,实现了 io.Reader 和io.Writer
后来翻了翻,这个写法是go 的type assertion

最典型的type assertion


type Element interface{}
func main(){
  var e Element=100
  switch value:=e.(type){
  case int:
    fmt.Println("int",value)
   case string:
    fmt.Println("string",value)
  default:
    fmt.Println("unknown")
                }
            }

而强制类型转换是这么写的

var i=0
s:=string( i)

相关文章

  • go语言中的类型断言与类型转换

    在读他人源码的时候碰到一个自己没读懂的写法: if r,ok:=w.(io.Reader);ok{r.Read(&...

  • 03-数据类型转换

    数值类型转换 C语言中存在显式转换和隐式转换 Go语言中只有显式转换 Go语言中数值类型转换注意点 数值类型转换为...

  • Go语言类型转换和类型断言

    Go语言的类型转换和类型断言: 类型转换在编译期完成,包括强制转换和隐式转换 类型断言在运行时确定,包括安全类型断...

  • 第04天(面对对象编程)_04

    16_接口的继承.go 17_接口转换.go 18_空接口.go 19_类型断言:if.go 20_类型断言:sw...

  • 类型转换和类型断言

    go语言不允许隐式类型转换,而类型转换和类型断言的本质,就是把一个类型转换到另一个类型。 一、类型转换 1.语法:...

  • 04GoLang类型转换

    数值类型之间的转换 在C语言中如何转换 1.1隐式转换 1.2显示转换 Go语言中如何转换 在Go语言中只有显示转...

  • 数据类型转换

    数值类型之间的转换 在C语言中如何转换1.隐式转换 2.显示转换 Go语言中如何转换 在Go语言中只有显示转换, ...

  • go笔记 - 类型转换

    go 存在 4 种类型转换分别为:断言、强制、显式、隐式。 通常说的类型转换是指断言,强制在日常不会使用到、显示是...

  • Go语言 类型转换,类型断言,类型开关

    类型转换Go语言中提供了一种不同类型但是相互兼容的可以相互转换的方式,这种方式是非常有用且安全的。非数值间相互转换...

  • Swift 类型转换 (as as! as? 区别)

    Swift 语言中类型转换使用的关键字是as,与类型检查相似,Swift语言中的类型转换有向上兼容向下转换之分,也...

网友评论

    本文标题:go语言中的类型断言与类型转换

    本文链接:https://www.haomeiwen.com/subject/kqttmftx.html