gpt4 book ai didi

go - 在 golang 中声明具有任意返回类型的函数类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:04:57 26 4
gpt4 key购买 nike

我是新来的,遇到了以下问题,我无法在教程或谷歌搜索中找到这些问题,但我确定它一定是我错过的语言的基本方面.我有如下代码:

type Task func()

var f Task = func() { fmt.Println("foo") }

type TaskWithValue func() interface{}

var g TaskWithValue = func() { return "foo" }

var h TaskWithValue = func() { return 123 }

f以上,没有编译错误,但是对于gh有如下错误:

Cannot use func() { return "foo" } (type func ()) as type TaskWithValue in assignment

本质上,我试图定义一个 Task可以具有任意返回类型的类型。在其他语言中,我会简单地给出 Task类型参数,例如 Task<Integer>Task<String> , 但由于 go 没有泛型/模板,我知道解决方法是使用返回类型 interface{}然后投出结果。为了使这个示例正常工作,我缺少什么?

最佳答案

您在匿名函数表达式中缺少返回类型:

var g TaskWithValue = func() interface{} { return "foo" }

var h TaskWithValue = func() interface{} { return 123 }

关于go - 在 golang 中声明具有任意返回类型的函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43379955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com