Как мне использовать эту функцию в Голанге? - PullRequest
0 голосов
/ 25 октября 2018

Эй, я новичок в синтаксисе Go.Как бы я использовал эту функцию?Часть, которая бросает меня, является указателем в начале объявления функции?

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

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

FunctionName - это метод на *Pointer.

Если вы спрашиваете, как использовать код для произвольных типов, а не только для *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 }")
0 голосов
/ 25 октября 2018

Типы структур в Go могут содержать методы, и это то, что у вас есть здесь.Скажем, у меня есть следующий код:

type Foo struct {
    Something string
}

func (f * Foo) PrintSomething() {
    fmt.Println(f.Something)
}

Я не могу вызвать PrintSomething напрямую, я должен вызвать его с помощью переменной типа Foo.Пример:

f := Foo{
    Something: "Something",
}

f.PrintSomething()
0 голосов
/ 25 октября 2018

Это определение метода.Способ использовать это

var p Pointer
/* or */
p := new(Pointer)

p.FunctionName(arg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...