博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go编程笔记(36)
阅读量:6829 次
发布时间:2019-06-26

本文共 673 字,大约阅读时间需要 2 分钟。

  hot3.png

package mainimport (	"fmt")type User struct {	Id   int	Name string}type Tester interface {	Test()}func (this *User) Test() {	fmt.Println("*User.Test", this)}func doSomething(i interface{}) {	if o, ok := i.(Tester); ok { //检查		o.Test()	}	//	i.(*User).Test()}func main() {	u := &User{1, "Tom"}	doSomething(u)}

package mainimport (	"fmt")type User struct {	Id   int	Name string}func Test(i interface{}) {	switch v := i.(type) {	case *User:		fmt.Println("User : Name = ", v.Name)	case string:		fmt.Println("string = ", v)	default:		fmt.Printf("%T : %v \n", v, v)	}}func main() {	Test(&User{1, "Tom"})	Test("hello world")	Test(123)}

转载于:https://my.oschina.net/itfanr/blog/194968

你可能感兴趣的文章
Nagios/Cacti异常报警,设定总动清理内存
查看>>
HA(高可用)集群之AIS(corosync),高可用httpd+NFS
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
centos知识点巩固
查看>>
碎纸片中的我的大学
查看>>
StreamWriter写入文件
查看>>
MQ 2035
查看>>
CCR与DAG的区别
查看>>
交换安全
查看>>
freemarker@ # $使用方法的区别
查看>>
Synchronized——实现原理、底层优化
查看>>
快速搭建 Discuz 论坛
查看>>
pip升级常见故障解决心得
查看>>
C语言:指针的运用
查看>>
TortoiseSVN 源码相关网址
查看>>
C语言贪吃蛇代码
查看>>
共享打印机:已达到计算机的连接数最大值,无法再同此远程计算机连接
查看>>
dos2unix 和 unix2dos
查看>>
iOS-应用程序沙盒机制(SandBox)
查看>>