golang 断言 + 类型转换

当传参是接口类型,需要强制类型转换,

如下:

package main

import "fmt"

type bbc struct {
	a int32
}

func main() {
	k(bbc{a:100})

}

func k(p interface{})  {
	if msg, ok := p.(bbc); ok {
		fmt.Println(msg.a)

	}
}

  或

package main

import "fmt"

type bbc struct {
	a int32
}

func main() {
	k(&bbc{a:100})    // 注意,这里对应的强制转化类型

}

func k(p interface{})  {
	if msg, ok := p.(*bbc); ok {
		fmt.Println(msg.a)

	}
}

  

 

posted @ 2018-10-08 14:28  天之草  阅读(1242)  评论(0编辑  收藏  举报