Variáveis

## Oque são Variáveis?

As variáveis são um dos pilares fundamentais de todas as linguagens de programação. As variáveis são exatamente como a palavra soa, eles podem armazenar um valor que varia.

## Como as Variáveis se parecem?

As Variáveis geralmente são definidas perto do início de um script ou função (Funções serão parte de um tutorial mais adiante), pois isso irá torná-los fáceis de editar mais tarde, se necessário. As variáveis podem ser definidos de uma série de maneiras diferentes, que dependem do tipo de dados que está a ser armazenado.

String values
Variáveis String podem armazenas qualquer text ou "string" que você irá usar em seu script. Elas podem ser definidas como no exemplo a seguir:

```
local Texto = 'Isso e uma String!'
local segundoTexto = "Isso tambem e uma string!"

```

Os valores de String tem uma habilidade única de concatenar (em inglês: concatenate). Para fazer isso, simplesmente digite ".." entre as 2 strings ou variáveis:

```
local Começo = "Isso e"
local Meio = " a parte de "
local Fim = "uma frase!"

Começo = Começo..Meio

```

E então usando a função "write(Começo..Meio)" irá escrever na tela: "Isso e a parte de".

Se usar "write(Começo..Meio..Fim)" irá escrever na tela: "Isso e a parte de uma frase!".

Number values
Variáveis de Number (número) podem armazenar qualquer núemero usado no script, bem como fazer cálculos com. Números podem ser denifidos como se segue:

```
local Number = 1
local AnotherNumber = 2

```

Lua permite as seguintes funções matemáticas:

* Adição (+) *1+1 = 2*
* Subtração (-) *2-1 = 1*
* Multiplicação (\*) *2\*2 = 4*
* Divisão (/) *2/2 = 1*
* Modulo (%) *5%2 = 1*
* Power (elevação) (^) *2^3 = 8*

Boolean values
Variáveis Boolean (boleana) são simplesmente "True ou False" (verdadeiro ou falso). Não podem ser NADA além disso. São usadas em declarações condicionais. Veja a seguir:

```
local Bool = true
local Bool2 = false

```

Observe que "true" e "false" seguem o padrão de serem minúsculas, não podendo ser maiúsculas (case sensitive).

Nil values
Nil values (ou valores nulos) são valores que atualmente não estão armazenando NADA. Normalmente você não define explicitamente uma variável de zero, pois atua semelhante a um boolean "false". Todas as variáveis são nulas por padrão.

```
local Variable = nil

```

Observe que "nil" também é case sensitive.

Table values
Table (tabela) são variáveis que você pode armazenar qualquer outra(s) variavel(eis), incluindo mais tabelas. Tutorial das Tabelas mais a frente. As tabelas podem ser definidas como:

```
local TabelaVazia = {}
local Tabela = {1,2,3,4}
local OutraTabela = {"This table", "Contains", 3, {"Types of variables!"} }

```

Function values
Embora não seja muitas vezes considerado variáveis, funções podem agir da mesma forma que outras variáveis. As funções serão descritas em mais detalhe em um tutorial mais tarde. funções podem ser definidas como se segue:

```
 local DoStuff = function() end
 local function AnotherFunction() end

 local DoStuff2 = function()
   write("Function!\n")
 end
 local function AnotherFunction2()
   write("Another function!\n")
 end

```

Função e Table Variáveis são geralmente definidas em várias linhas devido ao comprimento deles. No LUA , uma nova linha não marca qualquer funcionalidade e é usado exclusivamente para facilitar a leitura.

Ao contrário de muitas outras línguas, Lua permite a tipos de variáveis que pode ser alterado, facilmente substituir, por exemplo, uma string com um número.

```
 local Variable = "String!" --The variable is a string
 Variable = 1 --The variable is now a number

```

## Variáveis Locais e Globais

Uma variável pode ser local ou Global. Como saber se é uma ou outra? Segue um exemplo:

```
local texto1 = "Este e meu texto 1"
texto2 = "Este e meu texto 2"

```

Repare que a primeira é *local* e a Segunda é a *Global*.

**Mas qual a diferença?** A *local* só existirá naquele script ou Função em que ela está inserida, já a *global*, ficará escrito na Memória RAM do Computador do CC até que ele desligue e então perca a memória (memória RAM só dura enquanto o Computador está ligado).

Portanto, vamos supor que eu faça 2 programas:

Programa 1:

```
valorNum = 10

```

Portanto o "Programa 1" só tem essa linha definindo uma variável global com um valor (n, de number) int (integer, ou inteiro).

Programa 2:

```
print("Valor? "..valorNum)

```

Então ao executar o "Programa 1" e depois o "Programa 2" ele irá printar "10", pois foi escrito na Memória RAM que a variável "valorNum" é = 10.

## Várias Atribuições

Variáveis não precisam necessariamente serem definidas uma de cada vez, é possível atribuir valores múltiplos numa única operação através do uso de vírgulas

```
local Var1, Var2 = "Um", "Dois"
print(Var1..Var2)

```

Este tutorial encerra-se por aqui e qualquer dúvida só postar comentário abaixo.

Hayden Almeida (discussão) 18h30min de 19 de agosto de 2015 (UTC)