
Nesse artigo vamos dar prosseguimento a nossa Série Go, os tópicos anteriores são:
Nesse artigo vamos ver: Arrays, Operadores e Condições.
Arrays em Go são estruturas de dados que armazenam uma sequência fixa de elementos do mesmo tipo. São úteis quando se conhece de antemão a quantidade exata de elementos que serão manipulados.
var a [5]intCria um array de 5 inteiros, inicializados com zero.
Também é possível inicializar diretamente:
b := [3]string{"Go", "é", "rápido"}Ou deixar o compilador inferir o tamanho:
c := [...]float64{3.14, 2.71, 1.41}a[0] = 10
fmt.Println(a[0])for i, v := range b {
fmt.Println(i, v)
}[3]int e [4]int são tipos diferentes.x := [2]int{1, 2}
y := x
y[0] = 9
fmt.Println(x) // [1 2]var matriz [2][3]int
matriz[0][1] = 42
Go oferece um conjunto direto de operadores para manipulação de valores. Eles são divididos em categorias: aritméticos, relacionais, lógicos, bit a bit, de atribuição e especiais. São usados para realizar operações matemáticas comuns:
| Operador | Nome | Descrição | Exemplo |
|---|---|---|---|
+ |
Adição | Soma dois valores | x + y |
- |
Subtração | Subtrai um valor de outro | x - y |
* |
Multiplicação | Multiplica dois valores | x * y |
/ |
Divisão | Divide um valor por outro | x / y |
% |
Módulo | Retorna o resto da divisão | x % y |
++ |
Incremento | Aumenta o valor de uma variável em 1 | ++x |
-- |
Decremento | Diminui o valor de uma variável em 1 | --x |
Há também os:
==, !=, >, <, >=, <=;=, +=, -=, *=, /=, %=, &=, |=, ^=, >>= e <<=;&&, || e !;&, |, ^, << e >> .Exemplo de uma expressão matemática com Golang:
package main
import "fmt"
func main(){
fmt.Println( 2 + 6 / 4 + 3 * 3 - (4 -1) ) // 9
}
go run operadores.go
Go usa estruturas de controle simples para decisões condicionais. As principais são if, if-else, else if e switch.
ifif condição {
// bloco executado se condição for verdadeira
}Exemplo:
x := 10
if x > 5 {
fmt.Println("Maior que 5")
}if com declaração curtaPermite inicializar variáveis dentro do if.
if y := calcula(); y > 10 {
fmt.Println("Resultado > 10")
}y só existe dentro do bloco.
if-elseif condição {
// verdadeiro
} else {
// falso
}else ifPermite múltiplas verificações sequenciais:
if x < 0 {
fmt.Println("Negativo")
} else if x == 0 {
fmt.Println("Zero")
} else {
fmt.Println("Positivo")
}switchUsado para múltiplas comparações, mais limpo que vários if-else.
switch valor {
case 1:
fmt.Println("Um")
case 2:
fmt.Println("Dois")
default:
fmt.Println("Outro")
}break.switch true para expressões booleanas:switch {
case x < 0:
fmt.Println("Negativo")
case x == 0:
fmt.Println("Zero")
default:
fmt.Println("Positivo")
}fallthroughForça a execução do próximo case, mesmo que a condição não seja satisfeita:
switch x := 1; x {
case 1:
fmt.Println("Um")
fallthrough
case 2:
fmt.Println("Dois também")
}Por hoje é só até o próximo tópico!