Estruturas de controle no go

No go, temos apenas uma estrutura de laço: o for. A sua estrutura é simples: Não possui () e as {} são obrigatórios.

    for i := 0; i < 10; i++ {
	
    }

Não é obrigatório declarar nem a primeira nem a última declaração

    i := 1
    for ; i < 10;  {
	i += i
    }

O que deixa o for similar ao while de outras linguagens

    i := 1
    for i < 10 {
	i += i
    }

Você também pode criar um for infinito

    for {
	// algo infinito aqui
    }

O if possui a mesma estrutura do for: O () não existe e o {} é obrigatório

    idade := 29
    if idade > 30 {
        // alguma coisa aqui
    }

Também podemos declarar uma variável, assim como no for. A seu escopo será apenas dentro do if (e dos elses que o sigam)

    if idade := 29; idade > 30 {
        // alguma coisa aqui
    }

Uma coisa que pode ser diferente de outras linguagens, é a utilização de defer. Ao chamarmos uma função com defer, nós estamos adiando a execução daquela função até o fim do retorno da função que estamos

package main

import "fmt"

func funcComDefer() {
    fmt.Println("funcComDefer")
}

func testeDefer() {
    defer funcComDefer()
	fmt.Println("testeDefer")
}

func main() {
    testeDefer()
}

Caso tenha vários defer, eles serão executados na forma de fila, sendo o último a entrar, o primeiro a sair.

Voltar para Começando com go

Anúncios

Um comentário sobre “Estruturas de controle no go

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s