gpt4 book ai didi

go - golang中一流函数数组的语法令人困惑

转载 作者:行者123 更新时间:2023-12-01 22:32:07 24 4
gpt4 key购买 nike

我是Go的新手。对以下代码感到困惑:

  0  package main                                                                                                                                                                                                                               
1
2 import "fmt"
3
4 type job func(in, out chan interface{})
5
6 func main() {
7 myJobs := []job{
8 job(func(in, out chan interface{}) {
9 fmt.Println("marker 1")
10 }),
11 job(func(in, out chan interface{}) {
12 fmt.Println("marker 1")
13 }),
14 }
15 }
我知道第4行定义了一种新型作业。但是,我对在第8行和第11行中如何使用它感到困惑。通常,当我从另一个函数返回它时,会定义这样的类型。这种特殊用法对我来说是新的,我不理解。在第8行和第11行。具体地说,我不明白这些行的作用。从上下文中,我认为这只是工作的一部分,但我只是不了解语法。 job是一种类型,因此看起来好像正在发生 <type>(func(in, out chan interface{})。我觉得自己缺少了一些重要而又显而易见的东西。我将不胜感激。

最佳答案

我怀疑type conversion可能会使人困惑。在这种情况下,实际上并不需要这样做,并且以下内容也可以工作(并且更容易理解):

myJobs2 := []job{
func(in, out chan interface{}) {
fmt.Println("marker 1")
},
func(in, out chan interface{}) {
fmt.Println("marker 1")
},
}
我已经在 go playground中保存了一个示例。

关于go - golang中一流函数数组的语法令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63696712/

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