vkorbes / aprendago

Curso completo em português da linguagem Go, de zero a ninja! 🇧🇷
http://aprendago.com
1k stars 179 forks source link

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

Open vkorbes opened 3 years ago

vkorbes commented 3 years ago

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!

dsmello commented 3 years ago

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

diegoparra commented 3 years ago

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

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

an4kein commented 3 years ago

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.
alansantosmg commented 3 years ago

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()
}
wfrsilva commented 2 years ago

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

image

thiagoCalazans-dev commented 2 months ago

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

}