Podcast
Questions and Answers
O que caracteriza as gorrotinas em Go?
O que caracteriza as gorrotinas em Go?
Como você começaria uma nova gorrotina em Go?
Como você começaria uma nova gorrotina em Go?
O que é uma struct em Go?
O que é uma struct em Go?
Como você acessa um campo de uma struct em Go?
Como você acessa um campo de uma struct em Go?
Signup and view all the answers
Como você maneja erros em Go?
Como você maneja erros em Go?
Signup and view all the answers
O que é concorrência em Go?
O que é concorrência em Go?
Signup and view all the answers
Como você cria um canal de comunicação em Go?
Como você cria um canal de comunicação em Go?
Signup and view all the answers
Qual é a ferramenta usada para formatar o código Go?
Qual é a ferramenta usada para formatar o código Go?
Signup and view all the answers
Study Notes
Goroutines
- Lightweight threads that run concurrently with the main thread
- Scheduled by the Go runtime, not the OS
- Goroutines are very cheap in terms of memory and startup time
- Can be thought of as "functions that can run concurrently with other functions"
- Use the
go
keyword to start a new goroutine:go func() { ... }()
Error Handling
- Errors are values in Go, not exceptions
- Use the
err
type to represent an error - Use the
return
statement to return an error from a function - Use the
defer
statement to handle errors in a function - Multiple return values can be used to return an error and a result
- Error types can be customized using structs and the
Error()
method
Structs
- A collection of fields that can be of different types
- Fields are accessed using the dot notation:
struct.field
- Structs are values, not references
- Can be used to create custom types
- Can have methods attached to them using the
func (s *Struct) Method()
syntax - Fields can have tags, which are used by the
encoding/json
package to serialize and deserialize structs
Concurrency
- Concurrency is the ability of a program to do multiple things at the same time
- In Go, concurrency is achieved using goroutines and channels
- Channels are a way to communicate between goroutines
- Use the
chan
keyword to create a channel:ch := make(chan int)
- Use the
<-
operator to send and receive values on a channel:ch <- 1
andx := <-ch
- Channels are safe for concurrent use by multiple goroutines
- Use the
select
statement to handle multiple channels concurrently
Gofmt
- A tool that formats Go code according to the official Go style
- Formats code to be consistent and readable
- Can be used to enforce a consistent coding style across a project
- Use the
gofmt
command to format a file or directory:gofmt file.go
orgofmt .
- Can be integrated into an editor or IDE to format code automatically
Goroutines
- São threads leves que executam concorrentemente com a thread principal
- São escalonados pelo runtime do Go, e não pelo SO
- Goroutines são muito baratos em termos de memória e tempo de inicialização
- Podem ser pensadas como "funções que podem executar concorrentemente com outras funções"
- Usa-se a palavra-chave
go
para iniciar uma nova goroutine:go func() {...}()
Tratamento de Erros
- Erros são valores no Go, não exceções
- Usa-se o tipo
err
para representar um erro - Usa-se a declaração
return
para retornar um erro de uma função - Usa-se a declaração
defer
para lidar com erros em uma função - Valores de retorno múltiplos podem ser usados para retornar um erro e um resultado
- Tipos de erro podem ser personalizados usando structs e o método
Error()
Structs
- É uma coleção de campos que podem ser de diferentes tipos
- Campos são acessados usando a notação de ponto:
struct.campo
- Structs são valores, não referências
- Podem ser usados para criar tipos personalizados
- Podem ter métodos anexados a eles usando a sintaxe
func (s *Struct) Método()
- Campos podem ter tags, que são usadas pelo pacote
encoding/json
para serializar e deserializar structs
Concorrência
- É a capacidade de um programa de fazer várias coisas ao mesmo tempo
- No Go, a concorrência é alcançada usando goroutines e canais
- Canais são uma forma de comunicação entre goroutines
- Usa-se a palavra-chave
chan
para criar um canal:ch := make(chan int)
- Canais são usados para enviar e receber valores entre goroutines
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Aprenda os conceitos básicos de Goroutines e Tratamento de Erros em programação em Go. Entenda como trabalhar com threads leves e como lidar com erros em Go.