16.04.2013 Views

Download - Locaweb

Download - Locaweb

Download - Locaweb

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

descompactado. O código fonte contém cerca de 17 mil<br />

linhas de C. No Linux, o interpretador Lua contendo todas<br />

as bibliotecas padrões de Lua ocupa 153 K. Já a biblioteca<br />

Lua ocupa 203 K.<br />

A linguagem é um software livre de código aberto,<br />

distribuído sob uma licença muito liberal (a conhecida<br />

lMIT). A Lua pode ser usada para quaisquer propósitos,<br />

incluindo comerciais, sem qualquer custo ou burocracia.<br />

Para baixar o sistema, basta entrar no site oficial da<br />

linguagem: www.lua.org.<br />

Os primeiros passos na Lua<br />

Um pedaço de código Lua é chamado de trecho e, para<br />

executar esse trecho, podemos usar o interpretador da<br />

linguagem. Este, por sua vez, é chamado de lua (quando<br />

nos referimos à linguagem, usamos a letra L maiúscula, e<br />

ao se referir ao interpretador, usamos a letra l minúscula).<br />

Mas, antes de usarmos o interpretador, precisamos<br />

instalar a Lua.<br />

É possível fazer isso a partir do código fonte, baixado<br />

do site oficial ou do repositório de uma distro Linux. Para o<br />

exemplo deste artigo, usaremos o Debian GNU/Linux como<br />

base para testarmos os trechos de código Lua.<br />

Vamos proceder agora com instalação de Lua no<br />

Debian GNU/Linux (Lenny):<br />

# aptitude install lua5.1<br />

Para não fugir da tradição do “Hello World”, vamos<br />

imprimir um “Hello Brasil” a partir do interpretador lua:<br />

# lua<br />

Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio<br />

> print("Hello Brasil")<br />

Hello Brasil<br />

Podemos também escrever o programa acima em um<br />

arquivo hello.lua, e chamar o interpretador seguido do<br />

nome do arquivo, que contém o seu programa:<br />

# lua hello.lua<br />

Hello Brasil<br />

Por padrão, variáveis são globais em Lua. Para indicar<br />

que uma variável é local ao bloco ou programa em que<br />

ela foi declarada, devemos usar a palavra-chave local.<br />

O exemplo abaixo ilustra isso:<br />

-- Dois traços seguidos indicam um comentário.<br />

local l = 10<br />

LUA Programando.com<br />

* A linguagem Lua foi inteiramente<br />

projetada, implementada e<br />

desenvolvida no Brasil por uma<br />

equipe da Pontifícia Universidade<br />

Católica do Rio de Janeiro<br />

g = 100<br />

print (l) -- imprime 10<br />

if l > 0 then<br />

local l = 5<br />

print (l, g) -- imprime 5 100<br />

end<br />

print (l) -- imprime 10<br />

Em Lua, o tipo da variável é determinado<br />

dinamicamente. Existem oito tipos básicos: nil, boolean,<br />

number, string, userdata, function, thread e table. O<br />

exemplo seguinte usa a função type para exibir os tipos:<br />

print (type("Hello Brasil")) -- imprime string<br />

print (type(2010)) -- imprime number<br />

print (type(print)) -- imprime function<br />

print (type(type)) -- imprime function<br />

print (type(true)) -- imprime boolean<br />

print (type(nil)) -- imprime nil<br />

t = {}<br />

print (type(t)) -- imprime table<br />

Lua utiliza dois pontos (..) para concatenar valores<br />

entre strings:<br />

nome = "Maria"<br />

snome = "Simão"<br />

print (nome .. " " .. snome) -- imprime Maria<br />

Simão<br />

Os operadores relacionais de Lua são: < > = == ~=<br />

Os cinco primeiros operadores são bastante comuns em<br />

outras linguagens e possuem o significado usual. O<br />

operador relacional ~= significa a negação da igualdade.<br />

Lua oferece um único mecanismo para estruturação de<br />

dados, chamado tabela. Estas, por sua vez, nada mais são<br />

que arrays associativos, isto é, uma estrutura de dados que<br />

associa chaves com valores e permite acesso rápido ao valor<br />

associado a uma dada chave.<br />

Tabelas são, provavelmente, a característica mais<br />

marcante de Lua. Muitas outras linguagens, em especial<br />

linguagens dinâmicas, oferecem arrays associativos, mas<br />

locaweb 57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!