我是新手,遇到了以下问题,我在教程或Google搜索中找不到这个问题,但我确信它一定是我错过的语言的基本方面。我有以下代码:
// I can't find where the {{component}} helper is located.
import Component from './???'
export default Component.extend({
compute(componentType, hash) {
let componentName = getComponentToRender(componentType);
this._super(componentName, hash)
}
})
在上面的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
和g
,存在如下错误:
h
基本上,我正在尝试定义一个可以具有任意返回类型的Cannot use func() { return "foo" } (type func ()) as type TaskWithValue in assignment
类型。在其他语言中,我只是给Task
一个类型参数,例如Task
或Task<Integer>
,但由于go没有泛型/模板,我理解解决方法是使用返回类型{ {1}}然后投射结果。为了让这个例子有效,我错过了什么?
答案 0 :(得分:2)
您在匿名函数表达式中缺少返回类型:
var g TaskWithValue = func() interface{} { return "foo" }
var h TaskWithValue = func() interface{} { return 123 }