Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Visibilidade de atributos

Boa noite, tenho o seguinte código:

package main

import "fmt"

type Pessoa struct {
    Nome  string
    idade int
}

func main() {

    igor := Pessoa{"Igor Agueme", 25}

    fmt.Println(igor.Nome)

    igor.Nome = "Joao Paulo"

    fmt.Println(igor.Nome)

    fmt.Println(igor.idade)

    igor.idade = 30

    fmt.Println(igor.idade)

}

Ao meu entendimento na aula 3 foi dito que para que a visibilidade dos atributos de uma struct sejam "privados" basta colocar a letra inicial minúsculo. Porém no código acima ao rodar eu consegui alterar e acessar o atributo "idade" mesmo ele sendo privado. Alguem conseguiria me esclarecer essa parte? A saida do console ficou em:

Igor Agueme
Joao Paulo
25        
30

Obrigado!!

1 resposta
solução!

Oi Igor, tudo bem?

Essa visiblidade privada devido ao atributo estar com letra minuscula só é válido se a struct estiver em outro package. Por exemplo, crie um diretório pessoa, crie um arquivo pessoa.go e coloque a type Pessoa struct dentro dele, o método main não terá mais acesso a idade.