登录
首页 >  Golang >  Go问答

Golang类型开关怎么匹配通用切片/数组/地图/chan

来源:Golang技术栈

时间:2023-03-05 16:58:12 195浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Golang类型开关怎么匹配通用切片/数组/地图/chan》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

Golang类型开关怎么匹配通用切片/数组/地图/chan

正确答案

在Go中,类型开关(type switch)是一种可用于检查接口值底层类型的控制结构。你可以使用类型开关来匹配通用切片/数组/地图/chan。 下面是一些示例代码,演示如何在类型开关中匹配不同类型的通用集合类型。

func processCollection(collection interface{}) {
    switch c := collection.(type) {
    case []int:
        // 处理 int 类型的切片
        fmt.Println("int slice:", c)
    case []string:
        // 处理 string 类型的切片
        fmt.Println("string slice:", c)
    case map[string]int:
        // 处理 string->int 类型的 map
        fmt.Println("map:", c)
    case chan bool:
        // 处理 bool 类型的 channel
        fmt.Println("channel:", c)
    default:
        // 处理其他类型
        fmt.Println("unknown type")
    }
}

在上面的示例代码中,processCollection函数接受一个接口类型的参数collection。使用.(type)语法在switch语句中检查接口值的类型,然后分别处理每种类型的情况。在这种情况下,我们处理了四种通用集合类型:[]int[]stringmap[string]intchan bool。如果接口值不匹配任何一种类型,就会执行default代码块。

今天关于《Golang类型开关怎么匹配通用切片/数组/地图/chan》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表