From 0a90bbe107f8c7c22b28bf7d080af1818699d887 Mon Sep 17 00:00:00 2001 From: Raphael Amorim Date: Mon, 27 Mar 2017 17:27:41 -0300 Subject: [PATCH] set pattern on project order --- 01-hello-world/main.go | 7 +++++++ 02-variables/main.go | 31 +++++++++++++++++++++++++++++++ 03-contantes/main.go | 9 +++++++++ 04-funcoes/main.go | 12 ++++++++++++ 05-structs/main.go | 20 ++++++++++++++++++++ 06-arrays/main.go | 10 ++++++++++ 07-slices/main.go | 19 +++++++++++++++++++ 08-maps/main.go | 19 +++++++++++++++++++ 09-methods/main.go | 34 ++++++++++++++++++++++++++++++++++ 9 files changed, 161 insertions(+) create mode 100644 01-hello-world/main.go create mode 100644 02-variables/main.go create mode 100644 03-contantes/main.go create mode 100644 04-funcoes/main.go create mode 100644 05-structs/main.go create mode 100644 06-arrays/main.go create mode 100644 07-slices/main.go create mode 100644 08-maps/main.go create mode 100644 09-methods/main.go diff --git a/01-hello-world/main.go b/01-hello-world/main.go new file mode 100644 index 0000000..8306f3f --- /dev/null +++ b/01-hello-world/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Olá nobre guerreiros!") +} diff --git a/02-variables/main.go b/02-variables/main.go new file mode 100644 index 0000000..f08531f --- /dev/null +++ b/02-variables/main.go @@ -0,0 +1,31 @@ +package main + +import "fmt" + +func main() { + // int + // declarando uma variável utilizando o modelo pré declarativo + var x int // ou var x int = 10 + x = 10 + fmt.Printf("O valor de 'x' é %d\n", x) + + // declarando uma variável utilizando o modelo auto-declarativo + a := 20 + fmt.Printf("O valor de 'a' era %d\n", a) + a = 30 + fmt.Printf("O valor de 'a' agora é %d\n", a) + + // string + name := "wilson" + fmt.Println("Meu nome é", name) + + // float64 + pi := 3.14 + fmt.Printf("O valor de PI é %0.6f\n", pi) + + // bool + verdade := true + mentira := false + + fmt.Println("Verdade é igual a mentira:", verdade == mentira) +} diff --git a/03-contantes/main.go b/03-contantes/main.go new file mode 100644 index 0000000..171780b --- /dev/null +++ b/03-contantes/main.go @@ -0,0 +1,9 @@ +package main + +import "fmt" + +const PI = 3.14 + +func main() { + fmt.Println("O valor de PI é", PI) +} diff --git a/04-funcoes/main.go b/04-funcoes/main.go new file mode 100644 index 0000000..48f9e5c --- /dev/null +++ b/04-funcoes/main.go @@ -0,0 +1,12 @@ +package main + +import "fmt" + +// exemplo de função privada +func add(x int, y int) int { + return x + y +} + +func main() { + fmt.Println("O resultado de 10 + 20 é", add(10, 20)) +} diff --git a/05-structs/main.go b/05-structs/main.go new file mode 100644 index 0000000..7ffedd9 --- /dev/null +++ b/05-structs/main.go @@ -0,0 +1,20 @@ +package main + +import "fmt" + +type Person struct { + Name string + Age int + Active bool +} + +func main() { + p := Person{ + Name: "Wilson Júnior", + Age: 24, + Active: true, + } + fmt.Println("Nome", p.Name) + fmt.Println("Age", p.Age) + fmt.Println("Active", p.Active) +} diff --git a/06-arrays/main.go b/06-arrays/main.go new file mode 100644 index 0000000..1a9016c --- /dev/null +++ b/06-arrays/main.go @@ -0,0 +1,10 @@ +package main + +import "fmt" + +func main() { + var mandamentos [2]string + mandamentos[0] = "Amor" + mandamentos[1] = "Paz" + fmt.Println("Mandamentos: ", mandamentos) +} diff --git a/07-slices/main.go b/07-slices/main.go new file mode 100644 index 0000000..9c9d902 --- /dev/null +++ b/07-slices/main.go @@ -0,0 +1,19 @@ +package main + +import "fmt" + +func main() { + linguagens := []string{"python", "ruby", "javascript"} + linguagens = append(linguagens, "go") + + fmt.Println("Linguagens da globo.com: ", linguagens) + fmt.Println("Linguagens da globo.com: ", linguagens[1:3]) + + for i, linguagem := range linguagens { + fmt.Printf( + "Linguagem na posição %d do slice, valor: %s\n", + i, + linguagem, + ) + } +} diff --git a/08-maps/main.go b/08-maps/main.go new file mode 100644 index 0000000..273fa31 --- /dev/null +++ b/08-maps/main.go @@ -0,0 +1,19 @@ +package main + +import "fmt" + +func main() { + people := map[string]int{ + "wilson": 25, + "andre": 26, + } + + people["junior"] = 10 + + for name, age := range people { + fmt.Printf("Chave %s do mapa valor: %d\n", name, age) + } + + delete(people, "wilson") + fmt.Printf("Posição não alocada: %d\n", people["wilson"]) +} diff --git a/09-methods/main.go b/09-methods/main.go new file mode 100644 index 0000000..f08d873 --- /dev/null +++ b/09-methods/main.go @@ -0,0 +1,34 @@ +package main + +import "fmt" + +type Person struct { + Name string + Age int +} + +func (p *Person) String() string { + if p.Age < 18 { + return fmt.Sprintf("Olá jovem %s, seja bem vindo", p.Name) + } else if p.Age > 50 { + return fmt.Sprintf("Olá senhor %s, seja bem vindo", p.Name) + } + + return fmt.Sprintf("Olá %s, seja bem vindo", p.Name) +} + +func (p *Person) privateMethod() int { + return p.Age * 4 +} + +func main() { + person := Person{Name: "júnior", Age: 17} + fmt.Println(person.String()) + + person = Person{Name: "Wilson", Age: 27} + fmt.Println(person.String()) + + person = Person{Name: "Antônio", Age: 60} + fmt.Println(person.String()) + +}