英文:
can I define a function on a map[string]interface{}
问题
我已经尝试了以下两种方式:
func (m map[string]interface{}) Foo() {
...
}
和
func (m *map[string]interface{}) Foo() {
...
}
但是在运行go test
时出现了错误:
invalid receiver type map[string]interface {} (map[string]interface {} is an unnamed type)
所以我需要添加一些额外的文本来让 SO(Stack Overflow)满意。
英文:
I have tried
func (m map[string]interface{}) Foo() {
...
}
and
func (m *map[string]interface{}) Foo() {
...
}
but go test errors with
invalid receiver type map[string]interface {} (map[string]interface {} is an unnamed type)
so I have to add some more text to keep SO happy here
答案1
得分: 6
你需要定义一个新的类型,以便能够附加一个方法到它上面。
package main
import "fmt"
type MyMap map[string]interface{}
func (m MyMap) Foo() {
fmt.Println("You fool!")
}
func main() {
m := new(MyMap)
m.Foo()
}
请注意,这是一个示例代码,它定义了一个名为MyMap
的类型,并在该类型上定义了一个名为Foo
的方法。在main
函数中,我们创建了一个MyMap
类型的实例m
,并调用了Foo
方法。当运行这段代码时,它会打印出"You fool!"。
英文:
You need to define a new type to be able to attach a method to it.
package main
import "fmt"
type MyMap map[string]interface{}
func (m MyMap) Foo() {
fmt.Println("You fool!")
}
func main(){
m := new(MyMap)
m.Foo()
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论