aprendago icon indicating copy to clipboard operation
aprendago copied to clipboard

Exercício: Capítulo 13, Exercício 4 (Nível: 6)

Open vkorbes opened this issue 5 years ago • 7 comments

Exercício: Capítulo 13, Exercício 5 (Nível: 6)

Link para o vídeo:

Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!

vkorbes avatar Sep 30 '20 17:09 vkorbes

https://play.golang.org/p/9mfmHbs5iA2

dsmello avatar Oct 01 '20 23:10 dsmello

Fiz um pouco diferente retornando os valores de pessoa de forma individual:

https://play.golang.org/p/neRBmi9d9ez

diegoparra avatar Oct 12 '20 15:10 diegoparra

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.

an4kein avatar Feb 25 '21 20:02 an4kein

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()
}

alansantosmg avatar Apr 24 '21 16:04 alansantosmg

Cap. 13 – Exercícios: Nível #6 – 4 https://go.dev/play/p/T3gujoiPn1o

image

wfrsilva avatar May 30 '22 02:05 wfrsilva

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()

}

thiagoCalazans-dev avatar May 19 '24 01:05 thiagoCalazans-dev