go - golang中一流函数数组的语法混乱
问题描述
我是新手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{})
. 我觉得我错过了一些重要而明显的东西。我将不胜感激。
解决方案
我怀疑类型转换可能会使事情变得混乱;在这种情况下实际上不需要这样做,以下内容也可以使用(并且更容易理解):
myJobs2 := []job{
func(in, out chan interface{}) {
fmt.Println("marker 1")
},
func(in, out chan interface{}) {
fmt.Println("marker 1")
},
}
我在go playground中保存了一个示例。
推荐阅读
- go - Flatbuffer serialization performance is slow compared to protobuf
- c# - File Read.AllLines, but can user select file from console application?
- flutter - Flutter TextField Widget errorText未传递值
- python - elastic beanstalk上的自定义命令提示manage.py文件中的语法无效
- javascript - 用TypeScript取消useEffect的Async,正确的方法
- angular - 在使用 Jasmine 进行单元测试时,我应该模拟、监视或存根注入到组件中的服务吗?
- ios - PDF阅读器夜间模式
- json - 如何以 html-table 格式打印 JSON 格式的 JSON-RPC 输出
- sql-server - 在 SQL Server 2014 中将结果转换为 Json 格式
- python - 熊猫python中的数据框加入