Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução a Go

Introdução a Go

Nesta palestra faço uma introdução a linguagem Go

Elton Minetto

May 11, 2022
Tweet

More Decks by Elton Minetto

Other Decks in Programming

Transcript

  1. Elton Minetto ๏ Escrevo códigos, sou professor, palestrante, e escritor

    ๏ Escrevo no https://eltonminetto.dev e no twitter ๏ Sou Principal Software Engineer no PicPay
  2. Pacotes package main import ( "fmt" "math" ) func main()

    { fmt.Printf("Now you have %g problems.", math.Sqrt(7)) }
  3. Resultados Múltiplos package main import "fmt" func swap(x, y string)

    (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) }
  4. Erros package main import "github.com/coderockr/nfe/transmitter" func main() { response, err

    := transmitter.transmit(nfe, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } result, err := transmitter.saveData(response, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } }
  5. Goroutines package main import ( "fmt" "time" ) func say(s

    string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go say("world") say("hello") }
  6. Canais package main import "fmt" func sum(s []int, c chan

    int) { sum := 0 for _, v := range s { sum += v } c <- sum // send sum to c } func main() { s := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(s[:len(s)/2], c) go sum(s[len(s)/2:], c) x, y := <-c, <-c // receive from c fmt.Println(x, y, x+y) }
  7. Cross Compilation GOOS=darwin GOARCH=amd64 go build gorotines.go GOOS=windows GOARCH=amd64 go

    build gorotines.go GOOS=linux GOARCH=amd64 go build gorotines.go
  8. Google, Basecamp, Globo.com, Canonical, DigitalOcean, Dropbox, Github, Heroku, Medium, Docker,

    MongoDB, Mozilla, Netflix, New Relic, New York Times, Resultados Digitais, Moip, Neoway, Walmart, Trybe, PicPay, etc https://github.com/golang/go/wiki/GoUsers
  9. IoT

  10. Site oficial Tour Go, por onde começar? Livro: A Linguagem

    de Programação Go Curso Desenvolvimento Web com Go Awesome Go