«Метод требует ресивера указателя« в языке программирования Go

Я только что увидел презентацию языка программирования Go и думал, что попробую написать несколько строк. Все работало нормально, пока не пытался использовать интерфейс в этой ситуации. Как мне это решить?

package main

import "fmt"

type entity float32

func (e *entity) inc() {
    *e++
}

type incer interface {
    inc()
}

func doSomething(i incer) {
    i.inc()
}

func main() {
    fmt.Println("Hello, 世界")

    var e entity = 3
    e.inc()
    doSomething(e)
    fmt.Println(e)
}

Я получаю сообщение об ошибке компилятора:

prog.go:24: cannot use e (type entity) as type incer in function argument:
entity does not implement incer (inc method requires pointer receiver)

Я хочу использовать указатель, чтобы INC () повлияет на врач вне функции. Что такое синтаксис, который я должен использовать?

/ Ricky

17
задан Ricky Helgesson 15 September 2011 в 22:47
поделиться