Postado Sex maio 09, 2014 11:37 pm
Escopo e Identação
Nesta aula vamos seguir um grande passo da nossa carreira como scripters, regras muito importantes que deixa o seu código mais profissional, e você mais ágil.
divisor.png
Oque é um escopo?
Escopo significa um limite, aonde pode-se chegar, oque queremos atingir. Na programação escopo refere-se ao limite de uma estrutura de controle, que irá abrir e ser fechada mais tarde pela estrutura de controle end.
Exemplo:
15xjxjn.jpg
Como estudamos nas aulas anteriores, o if é uma estrutura de controle, como disse na definição de escopo, toda estrutura de controle abre um escopo, e o end que também é uma estrutura de controle, destrói esse escopo, digamos "desconstrói."
Pensamos numa pirâmide (este é o exemplo mais usado para explicar o escopo):
jauwrb.jpg
Dicas:
1ª Estruturas de controle (if, do, etc..) abrem um escopo novo.
2ª functions também abrem escopos.
3ª Estrutura de controle (end) destrói o escopo mais alto, exemplos:
o597o5.jpg
Curiosidades:
1ª Se uma variável local seja declarada dentro de um escopo, ela só terá seu valor dentro dele, apartir do momento em que o escopo for fechado, essa variável local terá o valor nulo, nil. Exemplo:
local s = "João"
if true then
local t = "Márcio"
end
print(t)
print(s)
Viram? Tentamos printar a variável t, mas o escopo em que ela estava foi fechado, então ela terá o valor nil.
2ª Uma variável pode ter seu valor substituído temporáriamente, exemplo:
var = 30
if true then
local var = 2
print(var)
end
print(var)
Os resultados serão:
2
30
Muito bem, tentem descobrir qual será o resultado abaixo:
var = 1
local var = 2
if true then
print(var)
end
Se vocês pensaram que irá ser 1, estão equivocados. Neste caso chama-se a variável local, pois a global só irá entrar em ação caso só exista ela com este valor.
Identação
divisor.png
Oque é identação?
Identação ou indentação é uma forma de organizar visualmente o código de forma com que as estruturas de controle (inícios do escopo) fiquem alinhadas ao fim do seu escopo.
Identar o seu código facilita o entendimento do leitor e de você mesmo, caso não lembre como pensou na lógica do seu código.
Em Lua, a identação não é obrigatória, mas em outras linguagens de programação, como Python, Haskell, Occam, entre outros, a identação faz parte.
Para identar, primeiramente você deve ter em mente que a identação deve ser feita ao decorrer com que cria o seu código, se criar tudo e depois identar, você mesmo vai se embaralhar.
Apartir desta aula, devemos começar a usar o NOTEPAD++, pois o OTScript Live não sabe oque é identação (rsrs). Para identar, apenas aperte a tecla TAB. Exemplo:
23h66ms.jpg
Viram? A cada escopo iniciado, deve se apertar 1x a mais do que a linha anterior a tecla TAB. Ou seja, após usar um desses:
"repeat", "while", "do", "for", "if", "elseif", "else" e "function"
Basta adicionar um TAB na próxima linha, e quando fechar o escopo, retirar um TAB:
"end" e "until".
Estes fecham escopos.
divisor.png
1º Exercício: Escreva oque irá printar e por quê:
Spoiler
Primeiro:
if true then
local var = "Hello, world!"
if true then
print(var)
end
end
print(var)
Segundo:
if true then
local var = "Hello, world!"
end
print(var)
Terceiro:
var = 3
if true then
if var > 1 then
local var = 2
end
if var < 5 then
print(var)
end
end
Quarto:
var = 7
local var = 9
print(var)
Favor, procurem não utilizar o OTSCRIPT LIVE! Pensem...
Qualquer Duvida é So Pergunta
Nesta aula vamos seguir um grande passo da nossa carreira como scripters, regras muito importantes que deixa o seu código mais profissional, e você mais ágil.
divisor.png
Oque é um escopo?
Escopo significa um limite, aonde pode-se chegar, oque queremos atingir. Na programação escopo refere-se ao limite de uma estrutura de controle, que irá abrir e ser fechada mais tarde pela estrutura de controle end.
Exemplo:
15xjxjn.jpg
Como estudamos nas aulas anteriores, o if é uma estrutura de controle, como disse na definição de escopo, toda estrutura de controle abre um escopo, e o end que também é uma estrutura de controle, destrói esse escopo, digamos "desconstrói."
Pensamos numa pirâmide (este é o exemplo mais usado para explicar o escopo):
jauwrb.jpg
Dicas:
1ª Estruturas de controle (if, do, etc..) abrem um escopo novo.
2ª functions também abrem escopos.
3ª Estrutura de controle (end) destrói o escopo mais alto, exemplos:
o597o5.jpg
Curiosidades:
1ª Se uma variável local seja declarada dentro de um escopo, ela só terá seu valor dentro dele, apartir do momento em que o escopo for fechado, essa variável local terá o valor nulo, nil. Exemplo:
local s = "João"
if true then
local t = "Márcio"
end
print(t)
print(s)
Viram? Tentamos printar a variável t, mas o escopo em que ela estava foi fechado, então ela terá o valor nil.
2ª Uma variável pode ter seu valor substituído temporáriamente, exemplo:
var = 30
if true then
local var = 2
print(var)
end
print(var)
Os resultados serão:
2
30
Muito bem, tentem descobrir qual será o resultado abaixo:
var = 1
local var = 2
if true then
print(var)
end
Se vocês pensaram que irá ser 1, estão equivocados. Neste caso chama-se a variável local, pois a global só irá entrar em ação caso só exista ela com este valor.
Identação
divisor.png
Oque é identação?
Identação ou indentação é uma forma de organizar visualmente o código de forma com que as estruturas de controle (inícios do escopo) fiquem alinhadas ao fim do seu escopo.
Identar o seu código facilita o entendimento do leitor e de você mesmo, caso não lembre como pensou na lógica do seu código.
Em Lua, a identação não é obrigatória, mas em outras linguagens de programação, como Python, Haskell, Occam, entre outros, a identação faz parte.
Para identar, primeiramente você deve ter em mente que a identação deve ser feita ao decorrer com que cria o seu código, se criar tudo e depois identar, você mesmo vai se embaralhar.
Apartir desta aula, devemos começar a usar o NOTEPAD++, pois o OTScript Live não sabe oque é identação (rsrs). Para identar, apenas aperte a tecla TAB. Exemplo:
23h66ms.jpg
Viram? A cada escopo iniciado, deve se apertar 1x a mais do que a linha anterior a tecla TAB. Ou seja, após usar um desses:
"repeat", "while", "do", "for", "if", "elseif", "else" e "function"
Basta adicionar um TAB na próxima linha, e quando fechar o escopo, retirar um TAB:
"end" e "until".
Estes fecham escopos.
divisor.png
1º Exercício: Escreva oque irá printar e por quê:
Spoiler
Primeiro:
if true then
local var = "Hello, world!"
if true then
print(var)
end
end
print(var)
Segundo:
if true then
local var = "Hello, world!"
end
print(var)
Terceiro:
var = 3
if true then
if var > 1 then
local var = 2
end
if var < 5 then
print(var)
end
end
Quarto:
var = 7
local var = 9
print(var)
Favor, procurem não utilizar o OTSCRIPT LIVE! Pensem...
Qualquer Duvida é So Pergunta