iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang怎么用type-switch判断interface变量的实际存储类型
  • 169
分享到

golang怎么用type-switch判断interface变量的实际存储类型

2023-06-30 03:06:30 169人浏览 八月长安
摘要

这篇文章主要讲解了“golang怎么用type-switch判断interface变量的实际存储类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang怎么用type-switch判断

这篇文章主要讲解了“golang怎么用type-switch判断interface变量的实际存储类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang怎么用type-switch判断interface变量的实际存储类型”吧!

用type-switch判断interface的实际存储类型

在go语言中,interface很好用,但是往往我们无法确定interface里存储的到底是什么类型,而且go又是强类型语言。

type-switch就刚好帮我解决了这个问题

//例子var s interface{}switch s.(type) {case string:        fmt.println("这是一个string类型的变量")case int64:        fmt.println("这是一个你int64类型的变量")default:        fmt.println("以上类型都不是")}//另外如果只是单纯的想知道变量的类型,可以使用reflect.typeof()val := "abcdefg123"fmt.println(reflect.typeof(val))        //打印结果:stringbeego.Debug(reflect.typeof(val))    //Debug打印结果:string

golang任何类型interface{}

golang中可以使用interface{}表示任何类型。

本文以例子的形式,演示interface{}的使用。

example1

package mainimport (        "fmt")func main() {        var t1 interface{} = 2        v, ok := t1.(int)        if ok {                fmt.Println("int:", v)        } else {                fmt.Println("v:", v)        }}

output:

$ ./test
int: 2

判断interface的类型,如果是int型,就输出接口表示的值。

有时,如果确定知道类型T(例如int),会直接使用如下方式进行断言:

v := t1.(int)

但断言失败,会panic。可根据具体情况选择使用哪种方式。

example2

package mainimport (        "fmt")func main() {        var t1 interface{} = "abc"        switch v := t1.(type) {        case int:                fmt.Println("int:", v)        case string:                fmt.Println("string:", v)        default:                fmt.Println("unknown type:", v)        }}

如果t1为abc:

output:

$ ./test
string: abc

如果t1为23:

output:

$ ./test
int: 23

如果t1为1.2

output:

$ ./test
unknown type: 1.2

感谢各位的阅读,以上就是“golang怎么用type-switch判断interface变量的实际存储类型”的内容了,经过本文的学习后,相信大家对golang怎么用type-switch判断interface变量的实际存储类型这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: golang怎么用type-switch判断interface变量的实际存储类型

本文链接: https://www.lsjlt.com/news/327174.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang怎么用type-switch判断interface变量的实际存储类型
    这篇文章主要讲解了“golang怎么用type-switch判断interface变量的实际存储类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang怎么用type-switch判断...
    99+
    2023-06-30
  • golang如何用type-switch判断interface变量的实际存储类型
    目录用type-switch判断interface的实际存储类型type-switch就刚好帮我解决了这个问题golang任何类型interface{}example1example...
    99+
    2024-04-02
  • php怎么改变变量的存储类型
    PHP是一门广泛应用于Web开发的编程语言,它的灵活性和可扩展性让开发者们能够轻松地构建各种类型的应用。在PHP中,变量存储类型的选择很重要,因为它在很大程度上影响了代码的性能和可读性。本文将介绍如何在PHP中改变变量存储类型的方法,以及它...
    99+
    2023-05-14
    php
  • python中使用什么函数来判断变量的类型
    python中判断变量类型的方法:在python中可使用type()函数函数来判断变量的类型,当你只有第一个参数时则返回对象的类型,如果带有三个参数则返回新的类型对象。具体分析如下:type()语法#一个参数type(object)#三个参...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作