如何在Golang中使用此功能?

时间:2018-10-25 18:31:14

标签: go

嘿,我是Go语法的新手。我将如何使用此功能?扔给我的那部分是函数声明开始处的指针?

func (p *Pointer) FunctionName(arg string) error {
  dec := json.NewDecoder(strings.NewReader(arg))
  err := dec.Decode(&p)
  return err
}

3 个答案:

答案 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)
相关问题