Gopher, mascote do Go. Foto de Nathan Youngman

Hugo Rodrigues
Especial para Include[SI]

Até então, Go me parece uma mistura de tudo que há de bom em várias linguagens de programação anteriores. Dentro do meu breve estudo, me deparei com características que nunca esperaria encontrar em uma linguagem compilada. São muitas as surpresas: closures, lambdas, duck typing, suporte ao paradigma funcional, interfaces… Neste artigo, não pretendo abordar a linguagem como um todo, nem ao menos te deixar apto a programar em Go. Quero apenas apresentar e deixar vocês com vontade de ir aprender também.  Comecemos com um programa bem complexo que vocês devem conhecer: o Hello World (ou Alô mundo)!

Opa! Já é muita informação? Vamos à primeira linha

Todos os programas Go devem ficar dentro de um package. Caso o programa seja um executável, ele deve estar em um package main. Os packages constituem uma ferramenta muito poderosa no desenvolvimento, de forma fácil, de plugins ou bibliotecas, pesquisem!

fmt é um package nativo da linguagem que implementa I/O com funções parecidas com printf e scanf do C.

Todo arquivo Go executável deve conter uma função main, assim como em C.

E aí, estão gostando? Vamos partir pra orientação a objetos? Vamos! Só tem um problema: Não existe orientação a objetos em GO!

COMO ASSIM “NÃO EXISTE ORIENTAÇÃO A OBJETOS EM GO”?

Calma, calma… Deixa eu explicar: uma definição de classe geralmente aceita é que são estruturas que tem atributos e comportamentos. Em Go não existe o conceito de classes. Ao invés disso, voltamos àquele velho conceito básico de Struct (lembram de C?), no qual é possível declarar um novo tipo que comporta vários atributos (foi a primeira metade). Mas e os métodos? Funções em Go são extremamente flexíveis. Uma das formas de se declarar um método é com uma função que tem como receptor uma estrutura! Não entendeu? Vejamos:

Nesse trecho de código é definido um Struct (repare que o tipo da variavel vem depois do nome) onde são especificados apenas os atributos da nossa “classe”, e novamente a pergunta: mas e os métodos???

Hugo Rodrigues, aluno de SIHugo Rodrigues está no 6º semetre do curso de Sistemas de Infomação da FA7 e atualmente participa do programa de estágio da empresa Naja Tecnologia

Funções em Go são definidas com a palavra chave “func”. Reparem que ainda antes do nome da função eu tenho o meu receptor (o Struct que recebe o meu método), que, no caso, é o que acabamos de criar. Desta forma é feito um método.

Gostaram? Acharam estranho? É realmente estranho pra nós da “geração orientada a objetos” (poético). Mas garanto que Go é uma linguagem extremamente poderosa, rápida, funcional (algo que não abordamos aqui) e de fácil leitura e integração (e ainda tem um mascote muito fofinho :3)!

MAIS>> O site oficial da linguaguem é https://golang.org/

Comentários

comentários

3IT: eles começaram na FA7 e criaram uma empresa de sucesso
Free Software e Open Source: suas origens e diferenças