ExpertiDict

Go · Avançado · Inglês · Técnico

method value

/ˈmɛθəd ˈvælju/substantivo

Expressão como obj.Method sem chamar o método: gera uma função já ligada àquele receiver. O receiver é avaliado e copiado na criação.

Onde usar

'f := srv.Handle' passa o método como callback, por exemplo para http.HandleFunc ou para uma goroutine. Com receiver de valor, a cópia acontece nesse momento e mudanças posteriores não aparecem.

Em código

type C struct{ n int }
func (c C) Show() { fmt.Println(c.n) }
c := C{1}
f := c.Show // c é copiado aqui
c.n = 2
f()         // 1
g := C.Show // method expression
g(c)        // 2

Exemplos

Pass the method value as the callback.

Passe o method value como callback.

The method value copied the receiver when we created it.

O method value copiou o receiver quando o criamos.

Cuidado

Não confunda com method expression, T.Method, que gera uma função que recebe o receiver como primeiro argumento.

Sinônimos

método ligado

Antônimos

method expression

Veja também

Todos os termos de Go