登录
首页 >  Golang >  Go问答

如何在 Golang 中实现函数返回任意数据类型?

来源:stackoverflow

时间:2024-02-28 09:27:20 260浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《如何在 Golang 中实现函数返回任意数据类型?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我对 Golang 有点陌生,我发现非常有用的一件事是我是否可以向函数返回未知的值类型。

有没有办法使用 Golang 在同一函数中返回未知的不同类型的值?


解决方案


有这样的事吗?类型开关在语言规范中进行了描述。请参阅 https://golang.org/ref/spec#Switch_statements

package main

import "fmt"

func main() {
    p := BasedOnType(true)
    fmt.Println(p) //map[bool:true]
    p = BasedOnType(2)
    fmt.Println(p) //map[]
}

func BasedOnType(i interface{}) map[interface{}]interface{} {
    m := make(map[interface{}]interface{})
    switch x := i.(type) {
    case bool, float64, string:
        k := fmt.Sprintf("%T", x)
        v := fmt.Sprintf("%v", x)
        m[k] = v
        return m
    default:
        return m
    }
}

有关 the go 演示,请参阅 https://play.golang.org/p/0ahpua7ujb2

到这里,我们也就讲完了《如何在 Golang 中实现函数返回任意数据类型?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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