嘿,我是Go语法的新手。我将如何使用此功能?扔给我的那部分是函数声明开始处的指针?
func (p *Pointer) FunctionName(arg string) error {
dec := json.NewDecoder(strings.NewReader(arg))
err := dec.Decode(&p)
return err
}
答案 0 :(得分:3)
在Go中,结构类型可以包含方法,这就是您所拥有的。说我有以下代码:
type Foo struct {
Something string
}
func (f * Foo) PrintSomething() {
fmt.Println(f.Something)
}
我无法直接调用PrintSomething
,必须使用类型Foo
的变量来调用它。示例:
f := Foo{
Something: "Something",
}
f.PrintSomething()
答案 1 :(得分:2)
FunctionName
是*Pointer
上的method。
如果您要问如何在任意类型上而不只是*Pointer
上使用代码,则应将其编写为函数:
func FunctionName(v interface{}, arg string) error {
dec := json.NewDecoder(strings.NewReader(arg))
err := dec.Decode(v)
return err
}
假设p
是类型*Pointer
的变量,然后这样调用它:
FunctionName(p, "{... JSON text here }")
答案 2 :(得分:1)
这是一个方法定义。
var p Pointer
/* or */
p := new(Pointer)
p.FunctionName(arg)