SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Hello!I am Abraão Állysson
Hello!
@AbraaoHonorio @AbraaoHonorio
Escopo da apresentação
1- Parte Teórica: Introdução:
○ História
○ Quando usar
○ Dicas
○ Recurso da linguagem
2- Parte Prática:
○ Mão na massa:
■ Exercício I
■ Exercício II
■ Exercício III
■ Exercício IV
■ Exercício V
■ Exercício ...
1.
Parte Teórica
Let’s start!
objetivo
× Introduzir os conceitos de programação
usando a linguagem GO
× Entender aonde aplicar GO
× Fazer Networking, promover comunidade GO
na UFPB
“Go is an open source
programming language that
makes it easy to build simple,
reliable, and efficient
software.”
É uma linguagem open
source criada em 2007
pelo Google, mais
especificamente por
caras como Robert
Griesemer, Rob Pike e Ken
Thompson.
O que é Go?
linguagens estáticas:
Possuem tipagem estática
Linguagens dinâmicas:
Possuem tipagem dinâmica.
E GO, o melhor dos dois
mundos?
GO é
Por que utilizar GO?
Por que utilizar GO no seu backend?
GO(fast)
GO é leve, em termos
de uso de memória,
Altamente escalável ,
desenhada para
trabalhar com
concorrência
E compila muito
rápido
Simples
Go possui sintaxe
intuitiva, tem
apenas 25 palavras
reservadas, possui
Garbage collection,
multiplataforma e
altamente escalável
Quem está usando
Go?
● Google
● Facebook
● Dropbox
● Twitter
● Uber
● Globo.com
Dica #1!
A dica mais importante,:
Sempre que for pesquisar sobre GO, use
GOLANG
Participe da comunidade Golang Brasil,
acessem: www.golangbr.org
Recurso da
linguagem
Recurso da
linguagem
Recurso da linguagem
Valores
● Numérico
● String
● Numérico
● Array
● Struct
● ...
Funcionalidades
● ; invisível
● Funções de
multi-retorno
● Não conseguir
compilar com
variáveis ou imports
não utilizados
● goroutines(tipagem
automática)
● Strings com funções
nativas
Tipos
● Primitivos
● Compostos
2.
Parte Prática
Let’s start! ;)
Hello Word!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Hello", nome)
}
Hello Word #2!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Hello", nome)
}
Hello Word #3!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Meu nome é", nome)
var matricula int= 11320000
fmt.Println("Minha matricula é", matricula)
}
Trabalhando com Números #1!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #2!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #2!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float32 = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #3!
package main
import "fmt"
func main() {
const pi = 3.14
fmt.Println("O número pi tem valor de", pi)
}
Trabalhando com Números #3!
package main
import "fmt"
func main() {
const pi = 3.14
fmt.Println("O número pi tem valor de", pi)
}
O valor da const
é imutável
Trabalhando com Pacotes #1 - MATH!
package main
import "fmt"
import "reflect"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var raizQuadrada = math.Sqrt(9)
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Este programa está na versão", versao)
fmt.Println("a raiz quadrada de 9 é", raizQuadrada)
}
Trabalhando com Pacotes #2 - reflect!
package main
import "fmt"
import "reflect"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var versao = 1.1
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Este programa está na versão", versao)
fmt.Println("O tipo da variável versão é", reflect.TypeOf(versao))
}
Entrada de dados #1!
package main
import "fmt"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var idade
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Qual sua idade? ")
fmt.Scanf("%d",&idade)
fmt.Println("sua idade é ", idade)
}
Dica #2!Declaração de variável
nome := "Abraao Allysson"
Não precisa declarar o var
C: Int i = 1;
GO: i :=1
Problema com estrutura condicionalNão possui () e as {} são sempre necessárias.
IF condição {
//sua lógica
//caso for verdadeira
}
else {
//sua lógica
//caso for falsa
}
Problema com estrutura
condicional #2!
Problema, verificar se o cliente tem dinheiro suficiente
para comprar o café
Problema de estrutura de
repetição #2!
Problema, verificar se o cliente tem dinheiro suficiente
para comprar o café
Problema com estrutura condicionalNão possui () e as {} são sempre necessárias.
switch comando {
case 1:
//sua lógica
case 2:
//sua lógica
default:
//lógica para entradas padrões
}
Problema de estrutura de
repetição #3!
Problema, verificar se o prato escolhido do cliente
encontra-se no cardápio
Dica #3!
Break?
Para quem vem de outras linguagens de
programação, pode estranhar o não uso do break,
ao final do código de cada caso do switch. No GO
não a necessidade do uso do break, o código será
executado e o switch será encerrado.
Problema com estrutura de repetiçãoNão possui () e as {} são sempre necessárias.
For comando {
//lógica vai se repetir
}
Problema de estrutura de
repetição #3!
Problema, somar o números de 0s a 100
Problema de estrutura de
repetição #3!
Problema, somar o números de 0 a 100
Dica #4!
Recomendo a leitura do artigo!
50 Shades of Go: Traps, Gotchas, and Common
Mistakes for New Golang Devs
ATENÇÃO
Como os códigos ficarão maiores daqui para frente não colocarei mais no slides, mas
Códigos estão no github, é só acessar o link: www.github.com/abraaohonorio/minicursoGO
Sorteio do livroSistema de sorteio feito em GO
THANKS!Alguma pergunta ?
Contato: @abraaohonorio & abraao.allyson@eng.ci.ufpb.br
referências
Referência técnica
https://imasters.com.br/linguagens/trabalhando-com-go-golang-
a-linguagem-do-google/?trace=1519021197
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-i
n-go-golang/
Material para construção Slides
× Presentation template by SlidesCarnival
× Photographs by Startupstockphotos

Mais conteúdo relacionado

Mais procurados

Ingénieur mécanique
Ingénieur mécaniqueIngénieur mécanique
Ingénieur mécaniqueYounes Bajji
 
Yassine Otmane voiture commandée à distance (XBEE)
Yassine Otmane voiture commandée à distance (XBEE)Yassine Otmane voiture commandée à distance (XBEE)
Yassine Otmane voiture commandée à distance (XBEE)Othmane Yassine
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Mohsen Sadok
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
 
Rapport de stage ouvrier
Rapport de stage ouvrierRapport de stage ouvrier
Rapport de stage ouvrierAdrien164091
 
Introduction GéNéRale
Introduction GéNéRaleIntroduction GéNéRale
Introduction GéNéRaleguestac62aa
 
SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13Mohsen Sadok
 
Projet Fin d'année version finale
Projet Fin d'année version finaleProjet Fin d'année version finale
Projet Fin d'année version finaleHoussem AZZOUZ
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝDimitris Psounis
 
Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Soufiane KALLIDA
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic nawzat
 
Conception, automatisation et supervision d’une machine d’assemblage connec...
  Conception, automatisation et supervision d’une machine d’assemblage connec...  Conception, automatisation et supervision d’une machine d’assemblage connec...
Conception, automatisation et supervision d’une machine d’assemblage connec...Hamza Jmili
 
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA Théorique
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA ThéoriqueCorrigé de l’examen de passage à la 2 ème année 2007 TS ESA Théorique
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA ThéoriqueRAMZI EL IDRISSI
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...Mohamed Amine Mahmoudi
 

Mais procurados (20)

Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Ingénieur mécanique
Ingénieur mécaniqueIngénieur mécanique
Ingénieur mécanique
 
Pic 16 f84
Pic 16 f84Pic 16 f84
Pic 16 f84
 
Yassine Otmane voiture commandée à distance (XBEE)
Yassine Otmane voiture commandée à distance (XBEE)Yassine Otmane voiture commandée à distance (XBEE)
Yassine Otmane voiture commandée à distance (XBEE)
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
 
Rapport de stage ouvrier
Rapport de stage ouvrierRapport de stage ouvrier
Rapport de stage ouvrier
 
Introduction GéNéRale
Introduction GéNéRaleIntroduction GéNéRale
Introduction GéNéRale
 
SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13
 
Projet Fin d'année version finale
Projet Fin d'année version finaleProjet Fin d'année version finale
Projet Fin d'année version finale
 
PFE SOA TOYOTA ALGERIE
PFE SOA TOYOTA ALGERIEPFE SOA TOYOTA ALGERIE
PFE SOA TOYOTA ALGERIE
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
 
Conception, automatisation et supervision d’une machine d’assemblage connec...
  Conception, automatisation et supervision d’une machine d’assemblage connec...  Conception, automatisation et supervision d’une machine d’assemblage connec...
Conception, automatisation et supervision d’une machine d’assemblage connec...
 
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA Théorique
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA ThéoriqueCorrigé de l’examen de passage à la 2 ème année 2007 TS ESA Théorique
Corrigé de l’examen de passage à la 2 ème année 2007 TS ESA Théorique
 
algorithmique
algorithmiquealgorithmique
algorithmique
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
Transistor effet-champ
Transistor effet-champTransistor effet-champ
Transistor effet-champ
 

Semelhante a Mini curso GOLANG

Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programaçãoClausia Antoneli
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaJonata Weber
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOJose Augusto Cintra
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Aula1 - introdução à programação
Aula1 - introdução à programaçãoAula1 - introdução à programação
Aula1 - introdução à programaçãoIan Giestas Pauli
 
Aula01 ip introducao
Aula01 ip introducaoAula01 ip introducao
Aula01 ip introducaoBerg Oliveira
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04André Phillip Bertoletti
 

Semelhante a Mini curso GOLANG (20)

Etapas da programação
Etapas da programaçãoEtapas da programação
Etapas da programação
 
Python for kids
Python for kidsPython for kids
Python for kids
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programação
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Aula 9 - Introdução ao Python
Aula 9 - Introdução ao PythonAula 9 - Introdução ao Python
Aula 9 - Introdução ao Python
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a Aula
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GO
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Curso python
Curso pythonCurso python
Curso python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Python 01
Python 01Python 01
Python 01
 
Aula1 - introdução à programação
Aula1 - introdução à programaçãoAula1 - introdução à programação
Aula1 - introdução à programação
 
Aula01 ip introducao
Aula01 ip introducaoAula01 ip introducao
Aula01 ip introducao
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
02 while
02 while02 while
02 while
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04
 

Mini curso GOLANG

  • 1. Hello!I am Abraão Állysson Hello! @AbraaoHonorio @AbraaoHonorio
  • 2. Escopo da apresentação 1- Parte Teórica: Introdução: ○ História ○ Quando usar ○ Dicas ○ Recurso da linguagem 2- Parte Prática: ○ Mão na massa: ■ Exercício I ■ Exercício II ■ Exercício III ■ Exercício IV ■ Exercício V ■ Exercício ...
  • 4. objetivo × Introduzir os conceitos de programação usando a linguagem GO × Entender aonde aplicar GO × Fazer Networking, promover comunidade GO na UFPB
  • 5. “Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.”
  • 6. É uma linguagem open source criada em 2007 pelo Google, mais especificamente por caras como Robert Griesemer, Rob Pike e Ken Thompson. O que é Go? linguagens estáticas: Possuem tipagem estática Linguagens dinâmicas: Possuem tipagem dinâmica. E GO, o melhor dos dois mundos?
  • 7. GO é Por que utilizar GO?
  • 8. Por que utilizar GO no seu backend? GO(fast) GO é leve, em termos de uso de memória, Altamente escalável , desenhada para trabalhar com concorrência E compila muito rápido Simples Go possui sintaxe intuitiva, tem apenas 25 palavras reservadas, possui Garbage collection, multiplataforma e altamente escalável Quem está usando Go? ● Google ● Facebook ● Dropbox ● Twitter ● Uber ● Globo.com
  • 9. Dica #1! A dica mais importante,: Sempre que for pesquisar sobre GO, use GOLANG Participe da comunidade Golang Brasil, acessem: www.golangbr.org
  • 11. Recurso da linguagem Valores ● Numérico ● String ● Numérico ● Array ● Struct ● ... Funcionalidades ● ; invisível ● Funções de multi-retorno ● Não conseguir compilar com variáveis ou imports não utilizados ● goroutines(tipagem automática) ● Strings com funções nativas Tipos ● Primitivos ● Compostos
  • 13. Hello Word! package main import "fmt" func main() { var nome string = "Abraao" fmt.Println("Hello", nome) }
  • 14. Hello Word #2! package main import "fmt" func main() { var nome string = "Abraao" fmt.Println("Hello", nome) }
  • 15. Hello Word #3! package main import "fmt" func main() { var nome string = "Abraao" fmt.Println("Meu nome é", nome) var matricula int= 11320000 fmt.Println("Minha matricula é", matricula) }
  • 16. Trabalhando com Números #1! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 17. Trabalhando com Números #2! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 18. Trabalhando com Números #2! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float32 = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 19. Trabalhando com Números #3! package main import "fmt" func main() { const pi = 3.14 fmt.Println("O número pi tem valor de", pi) }
  • 20. Trabalhando com Números #3! package main import "fmt" func main() { const pi = 3.14 fmt.Println("O número pi tem valor de", pi) } O valor da const é imutável
  • 21. Trabalhando com Pacotes #1 - MATH! package main import "fmt" import "reflect" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var raizQuadrada = math.Sqrt(9) fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Este programa está na versão", versao) fmt.Println("a raiz quadrada de 9 é", raizQuadrada) }
  • 22. Trabalhando com Pacotes #2 - reflect! package main import "fmt" import "reflect" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var versao = 1.1 fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Este programa está na versão", versao) fmt.Println("O tipo da variável versão é", reflect.TypeOf(versao)) }
  • 23. Entrada de dados #1! package main import "fmt" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var idade fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Qual sua idade? ") fmt.Scanf("%d",&idade) fmt.Println("sua idade é ", idade) }
  • 24. Dica #2!Declaração de variável nome := "Abraao Allysson" Não precisa declarar o var C: Int i = 1; GO: i :=1
  • 25. Problema com estrutura condicionalNão possui () e as {} são sempre necessárias. IF condição { //sua lógica //caso for verdadeira } else { //sua lógica //caso for falsa }
  • 26. Problema com estrutura condicional #2! Problema, verificar se o cliente tem dinheiro suficiente para comprar o café
  • 27. Problema de estrutura de repetição #2! Problema, verificar se o cliente tem dinheiro suficiente para comprar o café
  • 28. Problema com estrutura condicionalNão possui () e as {} são sempre necessárias. switch comando { case 1: //sua lógica case 2: //sua lógica default: //lógica para entradas padrões }
  • 29. Problema de estrutura de repetição #3! Problema, verificar se o prato escolhido do cliente encontra-se no cardápio
  • 30. Dica #3! Break? Para quem vem de outras linguagens de programação, pode estranhar o não uso do break, ao final do código de cada caso do switch. No GO não a necessidade do uso do break, o código será executado e o switch será encerrado.
  • 31. Problema com estrutura de repetiçãoNão possui () e as {} são sempre necessárias. For comando { //lógica vai se repetir }
  • 32. Problema de estrutura de repetição #3! Problema, somar o números de 0s a 100
  • 33. Problema de estrutura de repetição #3! Problema, somar o números de 0 a 100
  • 34. Dica #4! Recomendo a leitura do artigo! 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
  • 35. ATENÇÃO Como os códigos ficarão maiores daqui para frente não colocarei mais no slides, mas Códigos estão no github, é só acessar o link: www.github.com/abraaohonorio/minicursoGO
  • 36. Sorteio do livroSistema de sorteio feito em GO
  • 37. THANKS!Alguma pergunta ? Contato: @abraaohonorio & abraao.allyson@eng.ci.ufpb.br