Open julian-gamboa-bahia opened 1 month ago
chan
Código de exemplo:
package main
import (
"fmt"
"time"
)
// função que simula processamento longo e envia resultado em um canal
func processamentoPesado(c chan int) {
// Simula um cálculo demorado
time.Sleep(3 * time.Second)
c <- 42 // Envia o resultado para o canal
}
func main() {
c := make(chan int)
go processamentoPesado(c) // Inicia a goroutine
// Espera e recebe o resultado do canal
resultado := <-c
fmt.Println("Recebeu do canal:", resultado)
}
const
Código de exemplo:
package main
import (
"fmt"
"math"
)
// Constantes usadas para cálculos matemáticos
const (
Pi = 3.14159
Raio = 2
)
func main() {
// Calcula a área de um círculo com o raio e Pi definidos
area := Pi * math.Pow(Raio, 2)
fmt.Printf("A área do círculo é: %.2f\n", area)
}
default
Código de exemplo:
package main
import "fmt"
func tipoDeValor(i interface{}) {
switch v := i.(type) {
case int:
fmt.Printf("O valor é um inteiro: %d\n", v)
case string:
fmt.Printf("O valor é uma string: %s\n", v)
default:
fmt.Printf("Outro tipo com valor: %v\n", v)
}
}
func main() {
tipoDeValor(10)
tipoDeValor("dez")
tipoDeValor(3.14)
}
else
Código de exemplo:
package main
import "fmt"
func verificarValor(num int) {
if num%2 == 0 {
fmt.Println(num, "é par")
} else {
fmt.Println(num, "é ímpar")
}
}
func main() {
verificarValor(5)
verificarValor(6)
}
fallthrough
Código de exemplo:
package main
import "fmt"
func main() {
valor := 2
switch valor {
case 1:
fmt.Println("Um")
case 2:
fmt.Println("Dois")
fallthrough
case 3:
fmt.Println("Três, alcançado pelo fallthrough do caso 2")
}
}
for
Código de exemplo:
package main
import "fmt"
func main() {
// Loop for usando range para iterar sobre um slice
numeros := []int{1, 2, 3, 4, 5}
for idx, num := range numeros {
fmt.Printf("Índice %d tem valor %d\n", idx, num)
}
}
func
Código de exemplo:
package main
import "fmt"
// Função que retorna uma função que incrementa um valor
func incrementador() func() int {
var x int
return func() int {
x++
return x
}
}
func main() {
inc := incrementador()
fmt.Println(inc())
fmt.Println(inc())
}
case
Código de exemplo:
package main
import "fmt"
func avaliarNumero(numero int) {
switch {
case numero < 0:
fmt.Println("Número negativo")
case numero == 0:
fmt.Println("Zero")
case numero > 0:
fmt.Println("Número positivo")
}
}
func main() {
avaliarNumero(-5)
avaliarNumero(0)
avaliarNumero(10)
}
defer
Código de exemplo:
package main
import "fmt"
func limpar() {
fmt.Println("Limpando recursos...")
}
func operacaoComplexa() {
defer limpar() // Garante que a função limpar() será chamada ao final, independentemente de erros.
fmt.Println("Executando operação complexa")
// Simula um erro
panic("algo deu errado")
}
func main() {
defer fmt.Println("Operações concluídas") // Executado após todos os panics e defers anteriores serem resolvidos.
operacaoComplexa()
}
go
Código de exemplo:
package main
import (
"fmt"
"time"
)
func tarefa(duracao time.Duration) {
fmt.Printf("Iniciando tarefa de %v segundos...\n", duracao.Seconds())
time.Sleep(duracao)
fmt.Println("Tarefa concluída")
}
func main() {
go tarefa(1 * time.Second)
go tarefa(2 * time.Second)
fmt.Println("Aguardando tarefas")
time.Sleep(3 * time.Second)
fmt.Println("Final do programa")
}
goto
Código de exemplo:
package main
import "fmt"
func main() {
i := 0
Start:
if i < 5 {
fmt.Println(i)
i++
goto Start
}
fmt.Println("Finalizado")
}
if
Código de exemplo:
package main
import "fmt"
func classificarIdade(idade int) {
if idade < 13 {
fmt.Println("Criança")
} else if idade < 20 {
fmt.Println("Adolescente")
} else {
fmt.Println("Adulto")
}
}
func main() {
classificarIdade(10)
classificarIdade(16)
classificarIdade(25)
}
import
Código de exemplo:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
fmt.Println("Número aleatório:", rand.Intn(100))
}
interface
Código de exemplo:
package main
import "fmt"
type Forma interface {
Area() float64
}
type Circulo struct {
raio float64
}
func (c Circulo) Area() float64 {
return 3.14159 * c.raio * c.raio
}
func main() {
var f Forma = Circulo{raio: 5}
fmt.Println("Área do círculo:", f.Area())
}
map
Código de exemplo:
package main
import "fmt"
func main() {
usuarios := map[string]int{
"Alice": 28,
"Bob": 34,
}
usuarios["Charlie"] = 22
for nome, idade := range usuarios {
fmt.Println(nome, "tem", idade, "anos")
}
}
package
Código de exemplo:
// main.go
package main
import "fmt"
func main() {
fmt.Println("Exemplo de uso da palavra reservada package")
}
range
Código de exemplo:
package main
import "fmt"
func main() {
nomes := []string{"Alice", "Bob", "Charlie"}
for i, nome := range nomes {
fmt.Printf("Índice %d: %s\n", i, nome)
}
}
return
Código de exemplo:
package main
import "fmt"
func somar(a, b int) int {
return a + b
}
func main() {
resultado := somar(5, 7)
fmt.Println("Resultado da soma:", resultado)
}
select
Código de exemplo:
package main
import (
"fmt"
"time"
)
func servidor1(ch chan string) {
time.Sleep(1 * time.Second)
ch <- "Servidor
1 respondeu"
}
func servidor2(ch chan string) {
time.Sleep(2 * time.Second)
ch <- "Servidor 2 respondeu"
}
func main() {
ch1 := make(chan string)
ch2 := make(chan string)
go servidor1(ch1)
go servidor2(ch2)
for i := 0; i < 2; i++ {
select {
case msg1 := <-ch1:
fmt.Println(msg1)
case msg2 := <-ch2:
fmt.Println(msg2)
}
}
}
struct
Código de exemplo:
package main
import "fmt"
type Carro struct {
Marca string
Ano int
}
func main() {
meuCarro := Carro{"Toyota", 2021}
fmt.Println("Marca do carro:", meuCarro.Marca, "- Ano:", meuCarro.Ano)
}
switch
Código de exemplo:
package main
import "fmt"
func main() {
idioma := "espanhol"
switch idioma {
case "inglês":
fmt.Println("Hello!")
case "espanhol":
fmt.Println("¡Hola!")
case "francês":
fmt.Println("Bonjour!")
default:
fmt.Println("Idioma desconhecido")
}
}
type
Código de exemplo:
package main
import "fmt"
type Inteiro int
func (i Inteiro) Dobrar() Inteiro {
return i * 2
}
func main() {
var x Inteiro = 10
fmt.Println("O dobro de", x, "é", x.Dobrar())
}
var
Código de exemplo:
package main
import "fmt"
func main() {
var idade int = 30
var nome string = "Alice"
fmt.Println(nome, "tem", idade, "anos")
}
Palavra reservada:
break
Código de exemplo:
Palavra reservada:
continue
Código de exemplo:
Palavra reservada:
defer
Código de exemplo:
Palavra reservada:
go
Código de exemplo:
Palavra reservada:
if
Código de exemplo:
Palavra reservada:
import
Código de exemplo:
Palavra reservada:
interface
Código de exemplo:
Palavra reservada:
map
Código de exemplo:
Palavra reservada:
package
Código de exemplo:
Palavra reservada:
range
Código de exemplo:
Palavra reservada:
return
Código de exemplo:
Palavra reservada:
select
Código de exemplo:
Palavra reservada:
struct
Código de exemplo:
Palavra reservada:
switch
Código de exemplo:
Palavra reservada:
type
Código de exemplo:
Palavra reservada:
var
Código de exemplo:
Completando com um exemplo de
defer
Código de exemplo:
Palavra reservada:
goto
Código de exemplo:
Palavra reservada:
chan
Código de exemplo:
Palavra reservada:
const
Código de exemplo:
Palavra reservada:
default
Código de exemplo:
Palavra reservada:
else
Código de exemplo:
Palavra reservada:
fallthrough
Código de exemplo:
Palavra reservada:
for
Código de exemplo:
Palavra reservada:
func
Código de exemplo:
Palavra reservada:
case
Código de exemplo: