Sua Comunidade de servidores derivados


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1
 Luan Mello

avatar
Membro
Membro
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
Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]


Permissão deste fórum:
Você não pode responder aos tópicos neste fórum