aprendago icon indicating copy to clipboard operation
aprendago copied to clipboard

Exercício: Capítulo 11, Exercício 1 (Nível: 5)

Open vkorbes opened this issue 5 years ago • 19 comments

Exercício: Capítulo 11, Exercício 1 (Nível: 5)

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/TLAmbVYmM8J

diegoparra avatar Oct 08 '20 19:10 diegoparra

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

rwcosta avatar Oct 29 '20 20:10 rwcosta

senti um pouco de dificuldade para imprimir, colei o print e tentei refazer de outra forma:

package main

import("fmt")

type pessoa struct{
  nome string
  sobrenome string
  sabores []string
}

func main(){
  pessoa1:= pessoa{
      nome:"Alberto",
      sobrenome:"Rocha",
      sabores : []string{"Baunilha", "Chocolate"},
  }

  pessoa2:= pessoa{
    nome:"Maria",
    sobrenome:"Rocha",
    sabores : []string{"Maracuja", "Morango"},
  }
  
  fmt.Println(pessoa1.nome)
  imprimirSabores(pessoa1.sabores)
  fmt.Println(pessoa2.nome) 
  imprimirSabores(pessoa2.sabores)
 
}

func imprimirSabores(condicao []string){
  for _,y:= range condicao{
  fmt.Println("\t",y)
  }
}

haystem avatar Nov 21 '20 03:11 haystem

https://play.golang.org/p/4DxW_4vu02u

estava procurando uma maneira de imprimir tudo de uma vez, sem precisar o for range duas vezes. Ou encontrar uma maneira de passar no range algo assim: range pessoa1.sabores , pessoa2.sabores {} e assim percorrer as duas de uma so vez.

package main

import (
	"fmt"
)

type pessoa struct {
	nome      string
	sobrenome string
	sabores   []string
}

func main() {
	pessoa1 := pessoa{
		nome:      "anakein",
		sobrenome: "ank",
		sabores:   []string{"morango", "coco", "chocolate", "limao"},
	}

	pessoa2 := pessoa{
		nome:      "edu",
		sobrenome: "bar",
		sabores:   []string{"pessego", "leite", "jaca"},
	}

	for _, sabor := range pessoa1.sabores {
		fmt.Println(sabor)
	}

	for _, sabor := range pessoa2.sabores {
		fmt.Println(sabor)
	}

}

Output

morango
coco
chocolate
limao
pessego
leite
jaca

Program exited.

an4kein avatar Feb 19 '21 13:02 an4kein

hahaha pesquisei e fiz mais alguns testes e consegui algo assim

sabores := append(pessoa1.sabores, pessoa2.sabores...)
	fmt.Printf("%T\t%v",sabores,sabores)

Output

[]string	[morango coco chocolate limao pessego leite jaca]
Program exited.

reference: https://stackoverflow.com/questions/18042439/go-append-to-slice-in-struct

vamos assistir o video da resolucao agora :)

an4kein avatar Feb 19 '21 13:02 an4kein

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

package main

import (
	"fmt"
)

type pessoa struct {
	nome, sobrenome string
	sabores         []string
}

func main() {
	pessoa1 := pessoa{nome: "anakein", sobrenome: "ank", sabores: []string{"morango", "coco", "chocolate", "limao"}}
	pessoa2 := pessoa{nome: "edu", sobrenome: "bar", sabores: []string{"pessego", "leite", "jaca"}}
	sabores := append(pessoa1.sabores, pessoa2.sabores...)
	for _, sabor := range sabores {
		fmt.Println(sabor)
	}
}

Output

morango
coco
chocolate
limao
pessego
leite
jaca

Program exited.

an4kein avatar Feb 19 '21 13:02 an4kein

Dessa vez minha solução ficou bem diferente das demais. Não usei funções, pois o desafio seria fazer sem elas. Mas por outro lado, ao invés de fazer impressões separadas, optei por colocar as pessoas dentro de um slice e fazer o for iterando nele. Deu certo, e ficou um pouco mais compacto.

package main

import "fmt"

type pessoa struct {
	Nome             string
	Sobrenome        string
	sorveteFavoritos []string
}

func main() {

	pessoa1 := pessoa{
		Nome:             "alan",
		Sobrenome:        "Santos",
		sorveteFavoritos: []string{"chocolate", "banana"},
	}

	pessoa2 := pessoa{
		Nome:             "Henrique",
		Sobrenome:        "Beltrão",
		sorveteFavoritos: []string{"limão", "pera"},
	}

	pessoas := []pessoa{pessoa1, pessoa2}

	for _, p := range pessoas {
		fmt.Println(p.Nome, p.Sobrenome)
		for _, s := range p.sorveteFavoritos {
			fmt.Printf(" -%v\n", s)
		}
	}
}

Output:

alan Santos -chocolate -banana Henrique Beltrão -limão -pera

alansantosmg avatar Apr 22 '21 04:04 alansantosmg

package main

import "fmt"

type pessoa struct {
	nome      string
	sobrenome string
	sabores   []string
}

func main() {
	pessoa1 := pessoa{
		nome:      "Elliot",
		sobrenome: "Alderson",
		sabores: []string{
			"chocolate",
			"morango",
			"baunilha",
		},
	}

	pessoa2 := pessoa{
		nome:      "Darlene",
		sobrenome: "Alderson",
		sabores: []string{
			"açaí",
			"banana",
			"maracujá",
		},
	}

	fmt.Println(pessoa1.nome, pessoa1.sobrenome)
	for _, v := range pessoa1.sabores {
		fmt.Println("\t", v)
	}

	fmt.Println(pessoa2.nome, pessoa2.sobrenome)
	for _, v := range pessoa2.sabores {
		fmt.Println("\t", v)
	}
}

andersoncleyson avatar Sep 27 '21 00:09 andersoncleyson

package main

import (
	"fmt"
)

type pessoa struct {
	nome      string
	sobrenome string
	sorvetes  []string
}

func main() {
	pessoa1 := pessoa{
		nome:      "Tomás",
		sobrenome: "Almeida",
		sorvetes:  []string{"coco", "tapioca"},
	}
	
	pessoa2 := pessoa{
		nome: "Evelyn",
		sobrenome: "Perdigão",
		sorvetes: []string{"belga","chocolate meio amargo"},
	}
	
	fmt.Printf("Nome: %v, Sobrenome: %v\n", pessoa1.nome, pessoa1.sobrenome)
	fmt.Println("Sorvetes favoritos:")
	
	for _, value := range pessoa1.sorvetes {
		fmt.Println("\t",value)
	}
	
	fmt.Printf("Nome: %v, Sobrenome: %v\n", pessoa2.nome, pessoa2.sobrenome)
	fmt.Println("Sorvetes favoritos:")
	
	for _, value := range pessoa2.sorvetes {
		fmt.Println("\t",value)
	}
}

tomashugo avatar Oct 11 '21 21:10 tomashugo

https://go.dev/play/p/7adP0LUwOr5

viniciussanchez avatar Mar 17 '22 20:03 viniciussanchez

https://go.dev/play/p/xDPKZ3aP-DV

AlissonAp avatar Apr 17 '22 22:04 AlissonAp

Cap. 11 – Exercícios: Nível #5 – 1 https://go.dev/play/p/f5s4eyXT1N1

image

wfrsilva avatar May 28 '22 23:05 wfrsilva

Também senti uma necessidade de fazer algo diferente no print e então montei uma função pra exibir no formato mencionado: https://go.dev/play/p/dsVVLscHC3w

Harsgaard avatar Dec 04 '22 01:12 Harsgaard

https://go.dev/play/p/Sav-EsFmvr5

M3L1M avatar Feb 14 '23 23:02 M3L1M

package main

import (
	"fmt"
)

type pessoa struct {
	nome      string
	sobrenome string
	sabores   []string
}

func main() {

	pessoa1 := pessoa{
		nome:      "Jorge",
		sobrenome: "Silva",
		sabores: []string{
			"morango", "manga", "jaca",
		},
	}

	pessoa2 := pessoa{
		nome:      "Maria",
		sobrenome: "Silva",
		sabores: []string{
			"chocolate", "flocos", "toffee",
		},
	}

	fmt.Println(pessoa1.nome, pessoa1.sobrenome)
	for _, sabor := range pessoa1.sabores {
		fmt.Println("\t", sabor)
	}

	fmt.Println("\n", pessoa2.nome, pessoa2.sobrenome)
	for _, sabor := range pessoa2.sabores {
		fmt.Println("\t", sabor)
	}

}

adelsonsljunior avatar May 14 '23 00:05 adelsonsljunior

https://go.dev/play/p/ifmSufDIDMW

DominMFD avatar May 15 '24 16:05 DominMFD

// You can edit this code!
// Click here and start typing.
package main

import "fmt"

func main() {
	type Pessoa struct {
		Nome      string
		Sobrenome string
		Sabores   []string
	}

	pessoa1 := Pessoa{
		Nome:      "pessoa1",
		Sobrenome: "sobrenome1",
		Sabores:   []string{"Creme", "Chocolate"},
	}

	pessoa2 := Pessoa{
		Nome:      "pessoa2",
		Sobrenome: "sobrenome2",
		Sabores:   []string{"Flocos", "Morango"},
	}

	for _, v := range pessoa1.Sabores {
		fmt.Println(v)
	}

	for _, v := range pessoa2.Sabores {
		fmt.Println(v)
	}

}

thiagoCalazans-dev avatar May 18 '24 16:05 thiagoCalazans-dev