Princípios Básicos de Go

Instalação

Primeiramente é preciso baixar e instalar o Go. Seguindo este artigo a linguagem é facilmente instalada.

Alo Mundo

package main
 
import (
    "fmt";
)
 
func main() {
    fmt.Printf("\n\nAlo Mundo\n\n");
}

Para compilar salve o arquivo com o nome alomundo.go e no terminal do Mac OS X faça:

  6g alomundo.go
  6l alomundo.6
  ./6.out

Recursos Básicos

//Pacote do arquivo principal
package main
 
//Importa os pacotes que serão utilizados
import (
    "fmt";
    "os"
)
 
func main() {
 
    //Go não permite que você declare uma variável e não use
 
    //Formas de declarar e atribuir
    nome := "João";                 //Sem especificar o tipo
    var nome2 string = "Maria";     //Utilizando o var e especificando o tipo
    var nome3 = "Pedro";            //Utilizando o var sem espeificar o tipo
 
    //Imprimindo valores concatenados
    os.Stdout.WriteString(nome + " | " + nome2 + " | " + nome3 + "\n\n");
 
    //Declarando e atribuindo várias variáveis
    var (
        n1 = "Igor";
        n2 = "Takenami";
    )
 
    //Imprimindo valores concatenados
    os.Stdout.WriteString("\n\n" + n1 + " | " + n2 + "\n\n");
 
    //Imprimindo valores formatados. Necessário importar o package fmt
    pi := 3.14;
    fmt.Printf("Valor de PI: %f \n\n",pi); //%f informa o tipo de variável e a posição do string onde será impresso
 
    //Assim como em Java os strings são imutáveis em Go
    fruta := "Laranja";     //Declara a variável fruta e atribui "laranja"
    fruta2 := fruta;        //Declara a variável fruta2 e atribui um novo string com o mesmo conteúdo da variável fruta
    fruta = "Nova Laranja"; //Atribui um novo string a fruta com o conteúdo "Nova Laranja". O string "Laranja" anterior fica sem referência
    os.Stdout.WriteString(fruta + " | " + fruta2 + "\n\n");
 
    //Trabalhando com ponteiros
    var ponteiro_fruta *string = &fruta; //Cria um ponteiro para o string apontado pela variável fruta. O "*" identifica que é um ponteiro e logo após vem o seu tipo. O "&" indica que o que será armazenado no ponteiro será o endereço de memória para o qual a variável aponta
    *ponteiro_fruta = "Pera";           //Altera o conteúdo do endereço de memória da qual a variável aponta
    os.Stdout.WriteString(fruta + " | " + fruta2 + " | " + *ponteiro_fruta + "\n\n");
 
    //Declarando um vetor de inteiros de 3 posições
    var vet1 [3]int;
    //Atribuindo valores ao vetor
    vet1[0] = 1;
    vet1[1] = 2;
    vet1[2] = 3;
    //Imprimindo o conteúdo do vetor
    for x:=0;x<len(vet1);x++{
        fmt.Printf("%d\n",vet1[x]);
    }
    os.Stdout.WriteString("\n\n");
 
    //Declarando e inicializando um vetor de inteiros de 3 posições
    vet2 := [3]int{1,2,3};
    //Imprimindo o conteúdo do vetor
    for x:=0;x<len(vet2);x++{
        fmt.Printf("%d\n",vet2[x]);
    }
    os.Stdout.WriteString("\n\n");
 
    //Declarando um vetor sem informar o seu tamanho
    var vet3 []int; 
    //Informando o tamanho do vetor
    vet3 = make([]int,3);
    //Atribuindo valores ao vetor
    vet3[0] = 1;
    vet3[1] = 2;
    vet3[2] = 3;
    //Imprimindo o conteúdo do vetor
    for x:=0;x<len(vet3);x++{
        fmt.Printf("%d\n",vet3[x]);
    }
    os.Stdout.WriteString("\n\n");
 
    //Chamando a função soma
    fmt.Printf("Resultado: %d\n",soma(4,6));
}
 
//Declarando uma função no arquivo principal
func soma(val1 int, val2 int) int {
    s := val1+val2;
    return s
}
 
go/basico.txt · Última modificação: 2010/05/13 14:58 (edição externa)
 

Creative Commons License
Esta obra está licenciada sob uma Licença Creative Commons.