Open vkorbes opened 3 years ago
Fiz um pouco diferente retornando os valores de pessoa de forma individual:
https://play.golang.org/p/YyG544PzqgL
Ainda apanho muito pra fazer isso :), vamos assistir o video e ver a resolucao agora \o/
package main
import "fmt"
/* - Crie um tipo struct "pessoa" que contenha os campos:
- nome
- sobrenome
- idade
- Crie um método para "pessoa" que demonstre o nome completo e a idade;
- Crie um valor de tipo "pessoa";
- Utilize o método criado para demonstrar esse valor. */
type NomeCompleto interface {
Meunome() string
}
type Pessoa struct {
nome string
sobrenome string
idade int
}
func (u Pessoa) Meunome() string {
return fmt.Sprintf("Nome completo: %s %s \nIdade: %v", u.nome, u.sobrenome, u.idade)
}
func demonstre(s NomeCompleto) {
fmt.Println(s.Meunome())
}
func main() {
eduardo := Pessoa{
nome: "Eduardo",
sobrenome: "Barbosa",
idade: 1337,
}
demonstre(eduardo)
}
Output
Nome completo: Eduardo Barbosa
Idade: 1337
Program exited.
Estava fazendo como chamada de função e não de metodo, pois estava colocando o nome do método no lugar errado. Como o método é associado direto ao tipo, acho que dá pra entender como se ele fosse uma propriedade do tipo. Então deve ser chamado dessa forma, principalmente se não tem retorno.
/* - Crie um tipo struct "pessoa" que contenha os campos:
- nome
- sobrenome
- idade
- Crie um método para "pessoa" que demonstre o nome completo e a idade;
- Crie um valor de tipo "pessoa";
- Utilize o método criado para demonstrar esse valor.
*/
package main
import "fmt"
type pessoa struct {
nome string
sobrenome string
idade int
}
func (p pessoa) descrevePessoa() {
fmt.Println("Nome:", p.nome, p.sobrenome)
fmt.Println("Idade:", p.idade)
}
func main() {
pessoa1 := pessoa{
nome: "Alan",
sobrenome: "Santos",
idade: 47,
}
pessoa1.descrevePessoa()
}
Cap. 13 – Exercícios: Nível #6 – 4 https://go.dev/play/p/T3gujoiPn1o
import "fmt"
/*- Crie um tipo struct "pessoa" que contenha os campos:
- nome
- sobrenome
- idade
- Crie um método para "pessoa" que demonstre o nome completo e a idade;
- Crie um valor de tipo "pessoa"; */
type pessoa struct {
nome string
sobrenome string
idade int
}
func (p pessoa) show() {
fmt.Println(p.nome, p.sobrenome, p.idade)
}
func main() {
pessoa1 := pessoa{nome: "Thiago", sobrenome: "Calazans", idade: 34}
pessoa1.show()
}
Exercício: Capítulo 13, Exercício 5 (Nível: 6)
Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!