Poderia por favor me explicar a diferença entre os operadores * e &, pois isso não foi passado e me perdi no sentido quando fui criar um server para o html.
Poderia por favor me explicar a diferença entre os operadores * e &, pois isso não foi passado e me perdi no sentido quando fui criar um server para o html.
Oi Carlos
Golang é uma linguagem que tem ponteiros. Um ponteiro contém o endereço de memória de um valor na memória.
Quando usamos *
é um ponteiro para um valor.
var p *int
O operador &
gera um ponteiro para seu operando.
i := 42
p = &i
O operador *
denota o valor subjacente do ponteiro.
fmt.Println(*p) // ler i através do ponteiro p
*p = 21 // definir i por meio do ponteiro p
Isso é conhecido como "desreferenciamento" ou "indireção".
package main
import "fmt"
func main() {
i, j := 42, 2701
p := &i // endereço de memória para i (ponteiro de i)
fmt.Println(*p) // lê o valor de i através do ponteiro
*p = 21 // altera o valor de i através do ponteiro
fmt.Println(i) // lê o novo valor de i
p = &j // ponteiro de J
*p = *p / 37 // divide o valor de J usando o ponteiro
fmt.Println(j) // verifica o novo valor de J
}