SlideShare uma empresa Scribd logo
Lightning talks




Rodrigo Hübner
O que têm?
●   Nova :)
●   Experimental ¬¬
●   Concorrente :D
●   Coletor de lixo ¬¬
●   Programação de Sistemas o/
●   Linguagem divertida e moderna
Maaais sobre o Compilador
●   Impressão de tipagem dinâmica em um sistema
    de tipo estático
    ●   Tipos são bem flexíveis
●   Existe métodos mas não NÃO é OO
●   Compilador 6g (ken)
    ●   Experimental, código ótimo e rápido, não liga GCC
●   Compilador gccgo (iant)
    ●   Tradicional, código bom e não tão rápido, liga GCC
Olá Mundo
package main
import "fmt"
func main() {
    fmt.Print("Hello, Worldn")
}
Variáveis e Estruturas de Controle
var a int
var b, c *int // note a diferença com C
var d []int
type S struct { a, b int }


if a == b { return true } else { return false }


for i = 0; i < 10; i++ { ... }
Algumas mudanças em relação a C
+x
23 + 3*x[i]
x <= f()
^a >> b
f() || g()
x == y + 1 && <­chan_ptr > 0
x &^ 7  // x com 3 bits baixos em 0
fmt.Printf("%5.2gn", 2*math.Sin(PI/8))
"hello" ", " "there" // concatenação léxica
"hello, " + str // concatenação dinâmica
Vamos melhorar
var (
    i int;
    j = 356.245;
    k int = 0;
    l, m uint64 = 1, 2;
    billion int64 = 1e9;
    inter, floater, stringer = 1, 2.0, "hi"
)
iota
const (
    Monday = iota;
    Tuesday = iota;
)
If aprimorado
if v := f(); v < 10 {
    fmt.Printf("%d less than 10n", v)
} else {
    fmt.Printf("%d not less than 10", v)
}




if n, err = fd.Write(buf); err != nil { ... }
for aprimorado
for i,j := 0,N; i < j; i,j = i+1,j­1 {...}
Switch-case
a, b := x[i], y[j];
switch {
    case a < b: return ­1
    case a == b: return 0
    case a > b: return 1
}
ou
switch a, b := x[i], y[j]; { ... }
Break ?
Loop: for i := 0; i < 10; i++ {
    switch f(i) {
        case 0, 1, 2: break Loop
    }
    g(i)
}
Funções e retornos

func MySqrt(f float) (v float, ok bool) {
    if f >= 0 { v,ok = math.Sqrt(f),true }
    return v,ok
}


func MySqrt(f float) (v float, ok bool) {
    if f >= 0 { v,ok = math.Sqrt(f),true }
    return // must be explicit
}


func MySqrt(f float) (v float, ok bool) {
    if f < 0 { return } // error case
    return math.Sqrt(f),true
}
defer
func f() {
    for i := 0; i < 5; i++ {
        defer fmt.Printf("%d ", i)
    }
}
// prints 4 3 2 1 0
Arrays e operações
func fp(a *[3]int) { fmt.Println(a) }
func main() {
    for i := 0; i < 3; i++ 
        fp(&[3]int{i, i*i, i*i*i})
    }
}
Saída:
&[0 0 0]
&[1 1 1]
&[2 4 8]


var ar = [10]int{0,1,2,3,4,5,6,7,8,9}
var a = &ar[5:7] // referencia → {5,6}
Maps
m = map[string]float { "1":1, "pi":3.1415 }
// Acessar um elemento como um valor
one := m["1"]
crash := m["not present"] // error
// Criar novos elementos e atualizá­los
m["2"] = 2;
m["2"] = 3;


// Em laço for
m := map[string]float { "1":1.0, "pi":3.1415 };
for key, value := range m {
    fmt.Printf("key %s, value %gn", key, value)
}
closures
func adder() (func(int) int) {
    var x int;
    return func(delta int) int {
        x += delta;
        return x
    }
}
var f = adder();
fmt.Print(f(1));
fmt.Print(f(20));
fmt.Print(f(300));


// Imprime 1 21 321
Bibliotecas
Paralelismo
var freeList = make(chan *Buffer, 100)
var serverChan = make(chan *Buffer)
func server() {
    for {
        b := <-serverChan; // wait for work
        process(b);
        ok := freeList <- b // reuse buffer if room
    }
}
func client() {
    for {
        b, ok := <-freeList; // grab one if available
        if !ok { b = new(Buffer) }
        load(b);
        serverChan <- b // send to server
    }
}
Mais

●   Métodos em structs
●   Interfaces
    ●   Many to many
●   Iterators e generators
●   http://golang.org/

Mais conteúdo relacionado

PDF
Introdução a linguagem Go
DOCX
apostila C++
PDF
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
PDF
KEY
Design de código: princípios e práticas para ter um código sustentável
PDF
Possibilidades com python
PDF
Ponteiros de Função
ODP
Linguagem C 10 Arquivos
Introdução a linguagem Go
apostila C++
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
Design de código: princípios e práticas para ter um código sustentável
Possibilidades com python
Ponteiros de Função
Linguagem C 10 Arquivos

Mais procurados (20)

PDF
Why functional programming matters
PDF
DOCX
Exercício da lógica (16 ao 25)
PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
PDF
TDC2016SP - Trilha Node.Js
PDF
Lista de exercícios XIV Python para Zumbis
PDF
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
PPTX
programação c 3 aula
PDF
Curso de Node JS Básico
PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
PPTX
Tratamento de exceções em GO
DOCX
Avaliação 9º ano 3º b.
PPT
Pilha ad
PPTX
PDF
JavaScript - De verdade
ODP
Shell Scripting
PDF
2 funcoes e estrutura de blocos
PPT
Spring Capitulo 03
PPT
Aula5 introducao c
Why functional programming matters
Exercício da lógica (16 ao 25)
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
TDC2016SP - Trilha Node.Js
Lista de exercícios XIV Python para Zumbis
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
programação c 3 aula
Curso de Node JS Básico
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Tratamento de exceções em GO
Avaliação 9º ano 3º b.
Pilha ad
JavaScript - De verdade
Shell Scripting
2 funcoes e estrutura de blocos
Spring Capitulo 03
Aula5 introducao c
Anúncio

Destaque (6)

PDF
Conhecendo Go
PDF
Linguagem Go
PDF
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
PDF
PPTX
PDF
Construindo um Servidor Web com GO
Conhecendo Go
Linguagem Go
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
Construindo um Servidor Web com GO
Anúncio

Semelhante a Linguagem Go (20)

PDF
Sobrecarga operadores
PDF
Python para quem sabe Python (aula 2)
PPTX
Introdução a Linguagem C - analise básica.pptx
PDF
Leonardo Zamariola - High Order Functions e Functional Interfaces
DOCX
Usando o winplot
PDF
Aula 1 | Introdução a C++
PDF
Introducao Google GO
PDF
Sobre programas e funções: pensando em abstração
PPTX
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
PPT
Spock Framework 2
PDF
Cartao referencia ccs
PDF
InterCon 2017 - Programação funcional no desenvolvimento de aplicações: pensa...
PPTX
Usando POP com Programação Funcional
PPTX
RevisãoCompactaFuncoesPonteiro.pptx
PDF
Conhecendo ou relembrando C
PDF
aula algoritmos e programação LinguagemC.pdf
PPTX
Programação - linguagem C - uso de funções
PDF
Curso de Simulink
PPT
Aula5 introducao c
Sobrecarga operadores
Python para quem sabe Python (aula 2)
Introdução a Linguagem C - analise básica.pptx
Leonardo Zamariola - High Order Functions e Functional Interfaces
Usando o winplot
Aula 1 | Introdução a C++
Introducao Google GO
Sobre programas e funções: pensando em abstração
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
Spock Framework 2
Cartao referencia ccs
InterCon 2017 - Programação funcional no desenvolvimento de aplicações: pensa...
Usando POP com Programação Funcional
RevisãoCompactaFuncoesPonteiro.pptx
Conhecendo ou relembrando C
aula algoritmos e programação LinguagemC.pdf
Programação - linguagem C - uso de funções
Curso de Simulink
Aula5 introducao c

Mais de flisolmaringa (11)

PDF
Linux de A a Z
PDF
Desenvolvimento de jogos para iOS com Cocos2d
PDF
Introdução ao LaTeX
PDF
ZFS – Zettabyte File System
PDF
Platinum Arts Sandbox - Game Maker
PDF
Introdução ao processamento paralelo com o Grand Central Dispatch
PDF
Apresentando o FreeBSD
PDF
Sugar: Um sistema operacional para crianças
PDF
Software livre: filosofia, utopia ou alternativa viável?
PDF
PDF
Apresentando o FreeBSD
Linux de A a Z
Desenvolvimento de jogos para iOS com Cocos2d
Introdução ao LaTeX
ZFS – Zettabyte File System
Platinum Arts Sandbox - Game Maker
Introdução ao processamento paralelo com o Grand Central Dispatch
Apresentando o FreeBSD
Sugar: Um sistema operacional para crianças
Software livre: filosofia, utopia ou alternativa viável?
Apresentando o FreeBSD

Último (20)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Processos na gestão de transportes, TM100 Col18
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Apple Pippin Uma breve introdução. - David Glotz
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 9 - (Threads) Multitarefas.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx

Linguagem Go