具有Golang的自调用函数
无法轻松找到有关如何在Golang中创建自调用func的信息 我的最终目标是从文件中导出地图,如下所示:具有Golang的自调用函数,go,Go,无法轻松找到有关如何在Golang中创建自调用func的信息 我的最终目标是从文件中导出地图,如下所示: type Foo struct {} type Bar struct {} var TypeMap map[interface{}]string; func selfInvoking(){ TypeMap = map[interface{}]string{ Foo: "foo", Bar: "bar" } }() 如何从go中的文件导出这样的填充地图?它基本
type Foo struct {}
type Bar struct {}
var TypeMap map[interface{}]string;
func selfInvoking(){
TypeMap = map[interface{}]string{
Foo: "foo",
Bar: "bar"
}
}()
如何从go中的文件导出这样的填充地图?它基本上是一次性配置
使用上面的模式,我将获得
“未使用的变量类型映射”
不确定您想要实现什么,但这至少可以编译
import (
"fmt"
)
type Foo struct {}
type Bar struct {}
var TypeMap map[interface{}]string;
func selfInvoking(){
TypeMap = map[interface{}]string{
Foo{}: "foo",
Bar{}: "bar",
}
}
func main() {
selfInvoking()
fmt.Println(TypeMap)
}
不确定您想要实现什么,但这至少可以编译
import (
"fmt"
)
type Foo struct {}
type Bar struct {}
var TypeMap map[interface{}]string;
func selfInvoking(){
TypeMap = map[interface{}]string{
Foo{}: "foo",
Bar{}: "bar",
}
}
func main() {
selfInvoking()
fmt.Println(TypeMap)
}
在
GO
中执行初始化代码有3种方法:
var TypeMap = map[interface{}]string{
Foo{}: "foo",
Bar{}: "bar",
}
init函数:
var TypeMap map[interface{}]string
func init(){
TypeMap = map[interface{}]string{
Foo: "foo",
Bar: "bar",
}
}
在任何情况下,请小心使用初始值设定项,不要将其用于任何复杂或io
代码。
初始化器对于单元测试和错误处理/日志记录不是很好。在
GO
中有3种执行初始化代码的方法:
var TypeMap = map[interface{}]string{
Foo{}: "foo",
Bar{}: "bar",
}
init函数:
var TypeMap map[interface{}]string
func init(){
TypeMap = map[interface{}]string{
Foo: "foo",
Bar: "bar",
}
}
在任何情况下,请小心使用初始值设定项,不要将其用于任何复杂或io
代码。
初始化器对于单元测试和错误处理/日志记录不是很好。谁来调用main?我不是..我需要在声明后立即调用自调用func,我不认为这可以实现这一点?我之所以使用func,首先是为了填充导出的映射类型映射。我想用init代替main?init是否会自动在文件中被调用?是的,很抱歉,我不明白您在问题中的意思:)没问题,在JS中,自调用函数相对比较常见,用于创建隔离作用域,或递归,或什么notah,对。JS有点不同,因为它没有编译。JS可能是世界上最流行的语言,但我个人觉得它的语义和语法有点古怪!谁给梅因打电话?我不是..我需要在声明后立即调用自调用func,我不认为这可以实现这一点?我之所以使用func,首先是为了填充导出的映射类型映射。我想用init代替main?init是否会自动在文件中被调用?是的,很抱歉,我不明白您在问题中的意思:)没问题,在JS中,自调用函数相对比较常见,用于创建隔离作用域,或递归,或什么notah,对。JS有点不同,因为它没有编译。JS可能是世界上最流行的语言,但我个人觉得它的语义和语法有点古怪!我想你想使用包的init函数。@ain是的,我想你是对的-请看Dmitry的答案,但如果有办法创建自调用函数,我想看一下。谢谢,我想你想使用包的init函数。@ain是的,我想你是对的-请看Dmitry的答案,但是,如果有一种方法可以创建自调用func,我很想看到它谢谢,好吧,我不知道你可以在func之外创建一个变量,就像那样。啊,好吧,我不知道你可以在func之外创建一个变量