Jump to content

Aulas Básicas Com O Sr. Iunix: 3# Variáveis e Tipos de dados.


iunix

Recommended Posts

Olá abiguinhos, venho aqui mais uma vez dar uma aula para meus grandes amigos ♥.

 

 

Variáveis

divisor.png

O que são variáveis? Para o que elas servem? Como usa-las? Quais os tipos de variáveis?

 

 

O que são variáveis?

divisor.png

Vamos imaginar variáveis como um lugar onde você pode armazenar qualquer valor e mudar isso quando quiser. Isso é o conceito básico de variáveis.

 

 

Mas para o que isso serve?

divisor.png

Suponhamos que você precise pegar o level do player:

getPlayerLevel(cid)

várias vezes no código. E para evitar isso, você gostaria de ter uma maneira mais simples e eficaz de salvar esse level. Para isso servem as variáveis.

 

 

Como usa-las?

divisor.png

Vamos continuar o exemplo a cima.

if  getPlayerLevel(cid) < 65 then
print("O player tem o level menor que 65")
elseif getPlayerLevel(cid) == 65 then
print("O Player tem level 65")
elseif getPlayerLevel(cid) > 65 then
print("O player tem level menor que 65")
end

 

Isso seria um código sem variáveis. Podem ver que eu usei várias vezes a função "getPlayerLevel(cid)". Vamos tentar fazer usando variáveis.

 

local level = getPlayerLevel(cid)
if  level < 65 then
print("O player tem o level menor que 65")
elseif level == 65 then
print("O Player tem level 65")
elseif level > 65 then
print("O player tem level maior que 65")
end

 

Viram como ficou um pouco mais simples? Ok, agora vamos entender o que eu fiz.

 

Toda vez que você for criar uma variável, você tem que declarar o valor dela. Mas como fazer isso? Simples, faça isso:

 

local var = value

Onde var seria o nome da variável e value o valor da variável.

 

Mas dai você me pergunta: "O que é esse local?". Já chego lá amigo, aguente um pouco xD

 

Porem o nome das variáveis tem algumas regras:

 

1º - As seguintes palavras não podem ser utilizadas:

 

and       break     do        else      elseif
end       false     for       function  if
in        local     nil       not       or
repeat    return    then      true      until     while

 

2º - Não se pode começar um nome com um numero.

exemplo:

1variavel = valor

(Mas pode conter números)

 

3º - Não podem conter esses símbolos:

+     -     *     /     %     ^     #
==    ~=    <=    >=    <     >     =
(     )     {     }     [     ]
;     :     ,     .     ..    ...

 

 

Quais valores elas podem conter? (Tipos de Dados)

divisor.png

Existem alguns "tipos" de valóres que elas podem conter:

 

String = Texto
Number = Numero
Bool = True/False
Function = Funções (Sim, pode conter funções)
Tables = Sim, podem conter tabelas.
Userdata = Ponteiros em C (Não iremos usar isso)
Thread = Escopo de processamento (Não iremos usar isso também)
Nil = Valor nulo, sem valor ou vazio.

 

 

Mas e aquele "local", o que significa?

divisor.png

Bom, esse local significa que a variável é local desse arquivo. Isso é um tanto quanto irrelevante em otserver, já que ele não consegue pegar variáveis de outros scripts (Só em libs, que se você declarar uma variável como local em alguma lib, ela não será lida em outros códigos).

 

 

Finalizações

divisor.png

Bom, qualquer duvida ou sugestão. Postar abaixo. E se lembrarem de algo que eu esqueci, me avisem (Estou fazendo isso as 8 da manhã e estou sem dormir, meio obvio que deixarei algo passar.

Edited by iunix
Link to comment
Share on other sites

otimo tutorial ms... bem basico, mas concerteza eh um assunto q n podia faltar e tb concerteza vai ajudar os iniciantes...

soh achu q devia colocar ali q uma variavel pode assumir o valor de outra variavel...

local var2 = 10
local va1 = var2

sei q eh algu 'bobo' mas nunca se sabe neh? ^^

continue assim mano hehe

Edited by Slicer
Link to comment
Share on other sites

otimo tutorial ms... bem basico, mas concerteza eh um assunto q n podia faltar e tb concerteza vai ajudar os iniciantes...

soh achu q devia colocar ali q uma variavel pode assumir o valor de outra variavel...

local var2 = 10
local va1 = var2

sei q eh algu 'bobo' mas nunca se sabe neh? ^^

continue assim mano hehe

Ahh, é que tem uma coisa complicada com isso, de que quando se atribui uma variável a outra, quando se muda uma, muda as duas. Por isso pensei em não por para não confundir. XD

Link to comment
Share on other sites

em lua isso tb acontece? o.O nunca reparei nisso kkk

 

alias.. achu q em lua n tem isso n..

local var1 = 20

local var2 = var1
var1 = var1+30

sendMsgToPlayer(cid, 20, "var1 = ".. var1 .."\nvar2 = ".. var2)

 

printo as 2 variaveis diferentes o.O

Edited by Slicer
Link to comment
Share on other sites

em lua isso tb acontece? o.O nunca reparei nisso kkk

Sim, é que na verdade. Quando tu atribui uma variável a outra, tu não está atribuindo o valor, tu está atribuindo a variável em si. xD
Link to comment
Share on other sites

viu o ediit? achu q em .lua atribui o valor ms kkk

Aparentemente eu estava errado, estranho que a attribuição de tabelas é como eu disse acima.

 

local table1 = {x=1, 2,3}
local table2 = table1
table1.x = 2

print(table2.x)

 

Dai suspeitei que aconteceria o mesmo com variáveis normais, bom erro meu. (Mesmo sendo algo totalmente estranho ser de um jeito em algo e de outro jeito em outro), mas obrigado xD

Link to comment
Share on other sites

http://www.lua.org/m...manual.html#2.2

Valores do tipo table, function, thread e userdata (completo) são objetos: variáveis não contêm realmente estes valores, somente referências para eles. Atribuição, passagem de parâmetro, e retorno de funções sempre lidam com referências para tais valores; estas operações não implicam em qualquer espécie de cópia.

Edited by dalvorsn
Link to comment
Share on other sites

×
×
  • Create New...