欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

让我们一起Go(十三)

发布时间:2025/4/14 编程问答 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 让我们一起Go(十三) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言:

上篇,我们了解了Go语言接口的一些知识,在这篇中,我们将继续聊聊接口这东西。

 

Go语言空接口

Go语言中定义一个空接口,也就是没有任何函数需要实现的接口就是一个空接口,作为一个空接口,因为对象无需实现它的函数,所以它可以指向任何对象,看下面的示例:

上面的empty接口变量分别可以被赋值为int类型,string类型,结构类型和数组类型等等。最后,使用Println打印出相应的内容。那么,fmt包的Println函数又是如何知道这个要打印的变量是什么类型的呢?这就需要用到接口的类型断言了。

类型断言

什么是类型断言呢?类型断言是在运行时才会起推断作用的,既然是类型断言,当然是对变量是什么类型进行判断了。如上面的例子,最后说的Println函数,其实它的函数参数是这样的:

通过之前的学习,我们知道这是一个可变参数,而且类型是一个空接口,空接口是可以指向任何对象的,继续翻出Fprintln函数,然后继续往下翻,最终会查看该类型是否实现了String()方法,有的话就直接反射来变量成员。对于内置类型则如下:

未把全部代码展示出来,但是我们已经看到了类型断言的用法了。断言出类型后,就会通过switch case去匹配类型,如果匹配到就执行相应的操作。知道了用法,我们也来试试吧:

这样在运行时,Go语言断言了i的类型,并执行了相应操作。为了证明这是在运行时发生的,我们再来看一个例子:

完成后,我们可以顺利的完成编译,但是运行后会有一个panic:

告诉我们原来是没有实现Testone的方法。

本篇小结:

今天就到这里,关于类型断言今天就有个认识就可以了,以后我们会用它解决更实际的东西。

转载于:https://www.cnblogs.com/vimsk/p/3273369.html

总结

以上是生活随笔为你收集整理的让我们一起Go(十三)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。