From 05f7d218dea47c93809771a5f04477a196c8a42d Mon Sep 17 00:00:00 2001 From: Gustavo Date: Tue, 14 Mar 2023 21:45:17 -0300 Subject: [PATCH] Conceitos basicos de GO --- Conceitos Base/Aula 1/main.go | 22 ++++++++++ Conceitos Base/Aula 10/go.mod | 3 ++ Conceitos Base/Aula 10/go.sum | 0 Conceitos Base/Aula 10/main.go | 13 ++++++ .../Aula 10/matematica/matematica.go | 9 ++++ Conceitos Base/Aula 11/main.go | 13 ++++++ Conceitos Base/Aula 2/manin.go | 14 +++++++ Conceitos Base/Aula 3/main.go | 19 +++++++++ Conceitos Base/Aula 4/main.go | 21 ++++++++++ Conceitos Base/Aula 5/main.go | 20 +++++++++ Conceitos Base/Aula 6/main.go | 41 +++++++++++++++++++ Conceitos Base/Aula 7/main.go | 16 ++++++++ Conceitos Base/Aula 8/main.go | 12 ++++++ Conceitos Base/Aula 9/main.go | 27 ++++++++++++ 14 files changed, 230 insertions(+) create mode 100644 Conceitos Base/Aula 1/main.go create mode 100644 Conceitos Base/Aula 10/go.mod create mode 100644 Conceitos Base/Aula 10/go.sum create mode 100644 Conceitos Base/Aula 10/main.go create mode 100644 Conceitos Base/Aula 10/matematica/matematica.go create mode 100644 Conceitos Base/Aula 11/main.go create mode 100644 Conceitos Base/Aula 2/manin.go create mode 100644 Conceitos Base/Aula 3/main.go create mode 100644 Conceitos Base/Aula 4/main.go create mode 100644 Conceitos Base/Aula 5/main.go create mode 100644 Conceitos Base/Aula 6/main.go create mode 100644 Conceitos Base/Aula 7/main.go create mode 100644 Conceitos Base/Aula 8/main.go create mode 100644 Conceitos Base/Aula 9/main.go diff --git a/Conceitos Base/Aula 1/main.go b/Conceitos Base/Aula 1/main.go new file mode 100644 index 0000000..fdfbd6b --- /dev/null +++ b/Conceitos Base/Aula 1/main.go @@ -0,0 +1,22 @@ +package main + +import "fmt" + +type ID int + +var ( + a = true + b ID = 1 + c = "Gustavo" + d float64 = 1.33 + testArray [3]int +) + +func main() { + testArray[0] = 1 + testArray[1] = 2 + testArray[2] = 3 + for i, v := range testArray { + fmt.Printf("Index %d = %d\n", i, v) + } +} diff --git a/Conceitos Base/Aula 10/go.mod b/Conceitos Base/Aula 10/go.mod new file mode 100644 index 0000000..3efa539 --- /dev/null +++ b/Conceitos Base/Aula 10/go.mod @@ -0,0 +1,3 @@ +module curso-go + +go 1.20 diff --git a/Conceitos Base/Aula 10/go.sum b/Conceitos Base/Aula 10/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/Conceitos Base/Aula 10/main.go b/Conceitos Base/Aula 10/main.go new file mode 100644 index 0000000..75dc16a --- /dev/null +++ b/Conceitos Base/Aula 10/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "curso-go/matematica" + "fmt" +) + +func main() { + soma := matematica.Soma(10, 20) + carro := matematica.Carro{name: "test"} + fmt.Printf(carro) + fmt.Println("Resultado: %v", soma) +} diff --git a/Conceitos Base/Aula 10/matematica/matematica.go b/Conceitos Base/Aula 10/matematica/matematica.go new file mode 100644 index 0000000..d0d5ead --- /dev/null +++ b/Conceitos Base/Aula 10/matematica/matematica.go @@ -0,0 +1,9 @@ +package matematica + +func Soma[T int | float64](a, b T) T { + return a + b +} + +type Car struct { + name string +} diff --git a/Conceitos Base/Aula 11/main.go b/Conceitos Base/Aula 11/main.go new file mode 100644 index 0000000..6aa48ac --- /dev/null +++ b/Conceitos Base/Aula 11/main.go @@ -0,0 +1,13 @@ +package main + +func main() { + for i := 0; i < 10; i++ { + println(i) + } + + numbers := []string{"Um", "Dois", "Tres"} + for k, v := range numbers { + println(k, v) + } + +} diff --git a/Conceitos Base/Aula 2/manin.go b/Conceitos Base/Aula 2/manin.go new file mode 100644 index 0000000..6c4d95b --- /dev/null +++ b/Conceitos Base/Aula 2/manin.go @@ -0,0 +1,14 @@ +package main + +import "fmt" + +func main() { + s := []int{10, 20, 30, 40, 50} + fmt.Printf("len=%d cap=%d %v\n", len(s[:2]), cap(s), s[:2]) + fmt.Printf("len=%d cap=%d %v\n", len(s[:3]), cap(s[:3]), s[:3]) + fmt.Printf("len=%d cap=%d %v\n", len(s[2:]), cap(s[2:]), s[2:]) + + s = append(s, 60) + fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s) + +} diff --git a/Conceitos Base/Aula 3/main.go b/Conceitos Base/Aula 3/main.go new file mode 100644 index 0000000..bfb1c20 --- /dev/null +++ b/Conceitos Base/Aula 3/main.go @@ -0,0 +1,19 @@ +package main + +import "fmt" + +func main() { + data := map[string]int{"Gustavo": 1000} + fmt.Println(data["Gustavo"]) + delete(data, "Gustavo") + data["Gustav"] = 3000 + fmt.Println(data["Gustav"]) + + for name, salar := range data { + fmt.Printf("Nome: %s - Salario: %d\n", name, salar) + } + + for _, salar := range data { + fmt.Printf("Salario: %d\n", salar) + } +} diff --git a/Conceitos Base/Aula 4/main.go b/Conceitos Base/Aula 4/main.go new file mode 100644 index 0000000..db3c8e6 --- /dev/null +++ b/Conceitos Base/Aula 4/main.go @@ -0,0 +1,21 @@ +package main + +import ( + "errors" + "fmt" +) + +func main() { + resul, erro := sum(1, 2) + if erro != nil { + fmt.Println(erro) + } + fmt.Println(resul) +} + +func sum(a int, b int) (int, error) { + if a+b >= 50 { + return 0, errors.New("Erro") + } + return a + b, nil +} diff --git a/Conceitos Base/Aula 5/main.go b/Conceitos Base/Aula 5/main.go new file mode 100644 index 0000000..68b16ee --- /dev/null +++ b/Conceitos Base/Aula 5/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" +) + +func main() { + total := func() int { + return sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 0) * 2 + }() + fmt.Println(total) +} + +func sum(nums ...int) int { + total := 0 + for _, nume := range nums { + total += nume + } + return total +} diff --git a/Conceitos Base/Aula 6/main.go b/Conceitos Base/Aula 6/main.go new file mode 100644 index 0000000..45d5dbd --- /dev/null +++ b/Conceitos Base/Aula 6/main.go @@ -0,0 +1,41 @@ +package main + +import "fmt" + +type Address struct { + Street string + City string + State string + Zip string +} + +type Client struct { + Name string + Age int + Active bool + Addres Address +} + +type People interface { + Desactive() +} + +func (c Client) Desactive() { + c.Active = false + fmt.Printf("Client: %s is desactivated", c.Name) +} + +func Desativacao(pessoa People) { + pessoa.Desactive() +} + +func main() { + gustavo := Client{ + Name: "Gustavo", + Age: 18, + Active: true, + } + gustavo.Desactive() + Desativacao(gustavo) + fmt.Println(gustavo.Addres.City) +} diff --git a/Conceitos Base/Aula 7/main.go b/Conceitos Base/Aula 7/main.go new file mode 100644 index 0000000..d2b7013 --- /dev/null +++ b/Conceitos Base/Aula 7/main.go @@ -0,0 +1,16 @@ +package main + +type Client struct { + name string +} + +func teste(c Client) { + println(c.name) +} + +func main() { + client := Client{ + name: "Gustavo", + } + teste(client) +} diff --git a/Conceitos Base/Aula 8/main.go b/Conceitos Base/Aula 8/main.go new file mode 100644 index 0000000..6163336 --- /dev/null +++ b/Conceitos Base/Aula 8/main.go @@ -0,0 +1,12 @@ +package main + +import "fmt" + +func main() { + var x interface{} = 10 + showType(x) +} + +func showType(t interface{}) { + fmt.Printf("Type: %T - Value: %v\n", t, t) +} diff --git a/Conceitos Base/Aula 9/main.go b/Conceitos Base/Aula 9/main.go new file mode 100644 index 0000000..fc4bf75 --- /dev/null +++ b/Conceitos Base/Aula 9/main.go @@ -0,0 +1,27 @@ +package main + +type MyNumber int + +type Number interface { + ~int | float64 +} + +func somaSal[T Number](m map[string]T) T { + var soma T + for _, v := range m { + soma = soma + v + } + return soma +} + +func Compara[T comparable](a T, b T) bool { + return a == b +} + +func main() { + m := map[string]int{"Gustavo": 3000, "Leonardo": 2000} + n := map[string]MyNumber{"Gustavo": 3000, "Leonardo": 2000} + println(somaSal(m)) + println(somaSal(n)) + println(Compara(1, 2)) +}