如果我有一个类型同义词FooType和一个函数Foo,有没有办法坚持它Foo是FooType. 我想要一个显式,FooType以便我可以在类型开关中使用它。
var如果可以避免的话,我不想使用and 函数文字,因为这样当我尝试重新定义函数时就不会出错。
package main
import (
"fmt"
"reflect"
)
type FooType func(a int, b float64) float32
// foo happens to be of FooType, but this relationship isn't
// enforced by the compiler.
func Foo(a int, b float64) float32 {
return 2.4
}
func main () {
fmt.Printf("type of foo: %v\n", reflect.TypeOf(foo))
}
这样做的动机是我有两种类型的过滤器可以处理文本流或结构化对象。
// process items from channel
function filter1(in <-chan interface{}, out chan<- chan interface{}) {
for item := range in {
out <- doStuff(item)
}
}
// process items from Scanner
function filter2(scanner *Scanner, out chan<- chan interface{}) {
for scanner.Scan() {
out <- doStuff(scanner.Text())
}
}
我希望能够编写一个函数,该函数接受一个*exec.Cmd过滤器数组并将它们组合起来。
阿波罗的战车
相关分类