Introdução à linguagem Go
Quais empresas usam go lang?
- Empresa 1
- Empresa 2
- Usa-se um Tipo (String) para escrever nosso Hello World!
- Exemplo: Cachorro Nelson
- Linguagem estaticamente tipada
- O tipo tem uma característica definida.
- Números sem compoente decimal(-2, -1, 0, 1)
- Tem tamanho definido
- Tipos inteiros em Go: uint8, unint16, uint32, uint64, int8, int16, int32, int64
- Uint (unsigned integer - Inteiro sem sinal - somente +)
- Int (signed integer - inteiro com sinal - + e - )
- Uint8 => Bite
- Int32 => rune
- Números com componente decimal(1,523; 153,4)
- TEm tamanho definido
- Tipos ponto flutuante em go: float32, float64
- Em geral, usamos float64
- representa um texto que é uma sequência de caracteres
- possui tamanho definido
- aparece entre "" ou ``
- Len("Hello World") - Descobre o tamanho da String
- "Hello World"[2] - Acrescenta um caractres específico
- "Hello" + "World" - Concatena duas Strings
- Homenagem ao matemático George Boole
- Representa verdadeiro ou falso (ligado ou desligado)
- Operadores lógicos: &&(e), ||(ou) !(negação)
- Go consegue inferir(decifrar) o tipo dessas variáveis. Ele consegue entender que, se a variável começa e termina com as aspas, ela é uma string. Da mesma forma, se temos um número inteiro, sem casa decimal, A linguagem GO entenderá que a variável é do tipo inteiro.
- São componentes da própria linguagem e não podem ser redefinidas, ou seja, denominar elementos criados pelo programador.
- Exemplo: CONST, palavra reservada para indicar uma constante, não pode ser usada para quaisquer outro identificador no programa.
break | case | chan | func | if | interface | return | type | var |
---|---|---|---|---|---|---|---|---|
const | default | fallthrough | go | if | package | struct | map | |
continue | else | for | goto | import | range | switch | select |
- São comandos(informações) fornecidas em forma de código para que o programa execute uma determinada função.
- Comando de repetição: for
- Comando de atribuição: :=
- Comando de declaração: var
- Comando de condicionais: if, switch
- Área de armazenamento de um TIPO específico
- Tem um nome associado
- São as unidades fundamentais e podem representar comandos, condições, objetos e muitas outras variáveis que fazem parte da construção de um programa.
- é a acessibilidade de objetos, variáveis e funções em diferentes partes do código. Em outras palavras, o que determina quais são os dados que podem ser acessados em uma determinada parte do código é o ESCOPO.
- Sequência numerada;
- Tem um único TIPO;
- Tamanho Fixo;
- é uma parte (fatia) do Array;
- Tem um único TIPO;
- Tamanho variável
- Busca um valor de acordo com a palavra associada; Pode ser chamado de tabelas hash, arrays associativos ou dicionários.
- Consiste em esconder os detalhes de algo, no caso, os detalhes desnecessários
- É um valor, proveniente de uma variável ou de uma expressão mais complexa, que pode ser passado para uma função (sub-rotina), que utiliza os valores atribuídos aos parâmetros para alterar o seu comportamento em tempo de execução.
- Go não tem objetos e classes, porém tem estrutura e funções que simulam ambas em outras linguagens
- Guarda apenas estado e não tem comportamento
- É um conjunto de regras que atribuem uma propriedade chamada de tipo para as várias construções - tais como variáveis, expressões, funções - que um programa de computador é composto.
- Uma interface define um comportamento de um tipo;
- Go não possui exceções;
- Conseguir escrever programas com variáveis em Go e ser capaz de ler e interpretar códigos, intermediários.
- Variável: local que armazena uma informação;
- forma: var(palavra reservada) + nome(indentificação) + string(tipo) = expressão
- Principais declarações: var, const, type, func.
- = para atribuir valores a variáveis já existentes
- gopher := utilizado para criar novas variáveis, dentro de code blocks.
package main
import "fmt"
const ebulicaoF float64 = 212.0 //Fora do code block
func main() {
tempF := ebulicaoF //dentro do code block
tempC := (tempF - 32) * 5 / 9 //dentro do code block
fmt.Println("A temperatura de ebulição da água em F é: ", tempF)
fmt.Println("A temperatura de ebulição da água em graus celsius é:", tempC)
}
- println = imprime a linha
fmt.Println("A temperatura de ebulição da água em F é: ", tempF)
fmt.Println("A temperatura de ebulição da água em graus celsius é:", tempC)
- printf = imprime um bloco
fmt.Printlf("A temperatura de ebulição da água em F é: ", e a )
- Primitivos (básicos): int, float, string, bool
- Compostos (criados pelo usuário): arrays, fatia, struct, mapas.
package main
import "fmt"
var x int
func main() {
//x = 10
x = 10.1
fmt.Println("x=", x)
}
A var x é declarada como int e depois ao tentar mudá-la para float aparecerá a seguinte mensagem no terminal:
cannot use 10.1 (untyped float constant) as int value in assignment (truncated)
- no Printlf basta usar o ,%T antes da variável.
- Uma conversão altera o tipo de uma expressão para o tipo especificado pela conversão T(v)
package main
import "fmt"
var a int = 20
var b string = "Nome"
func main() {
var c float64 = float64(a)
fmt.Println("O valor de C é: e o valor de B é: ", c, b)
}
- Grupo 1: func Print / Printf/ Println
- Grupo 2: func Sprint / Sprintf / Srpintln
- Grupo 3: func Fprint/ Fprintf / Fprintln