Lolcode - Variáveis
Como em qualquer outra linguagem de programação, LOLCODE permite definir variáveis de vários tipos. Este capítulo irá familiarizá-lo com o trabalho com variáveis em LOLCODE.
Escopo das Variáveis
O escopo de uma variável é local para a função ou para o bloco de programa, ou seja, uma variável definida em um escopo não pode ser chamada em qualquer outro escopo do mesmo programa. As variáveis são acessíveis somente após serem declaradas.
Observe que não há escopo global de variáveis em LOLCODE.
Convenções de Nomenclatura
Os nomes das variáveis geralmente são chamados de identificadores. Aqui estão algumas das convenções para nomear variáveis em LOLCODE -
Os identificadores de variáveis podem estar em MAIÚSCULAS ou em letras minúsculas (ou uma mistura dos dois).
Eles só podem começar com uma letra e, em seguida, podem ser seguidos por outras letras, números e sublinhados.
LOLCODE não permite o uso de espaços, travessões ou outros símbolos ao nomear uma variável.
Os identificadores de variáveis diferenciam maiúsculas de minúsculas.
Aqui estão algumas das regras para nomes válidos e inválidos para variáveis em LOLCODE−
O nome deve sempre começar com um alfabeto. Por exemplo,name, Name é válido.
O nome de uma variável não pode começar com um dígito. Por exemplo,2var é inválido.
O nome de uma variável não pode começar com um caractere especial.
Uma variável pode conter _ ou um dígito em qualquer lugar dentro de seu nome, exceto no índice inicial. Por exemplo,name2_m é um nome válido.
Alguns exemplos de nomes válidos em LOLCODE são mostrados abaixo -
HAI 1.2
I HAS A food ITZ "111.00033"
I HAS A food2 ITZ "111"
I HAS A fo_od ITZ "1"
VISIBLE food
VISIBLE food2
VISIBLE fo_od
KTHXBYE
Todas as instruções de declaração no código acima são válidas e produzirão a seguinte saída quando executadas -
sh-4.3$ lci main.lo
111.00033
111
1
Alguns exemplos de instruções inválidas e seus resultados são fornecidos abaixo -
Exemplo 1
HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE
O código acima fornecerá a seguinte saída quando você executá-lo -
sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).
Exemplo 2
HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE
O código acima fornecerá a seguinte saída quando você executá-lo -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".
Exemplo 3
HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE
O código acima fornecerá a seguinte saída quando você executá-lo -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
Declaração e Atribuição de Variáveis
Para declareuma variável, LOLCODE fornece uma palavra-chave “I HAS A”, que é seguida pelo nome da variável. Você pode encontrar abaixo a sintaxe para declarar uma variável.
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
Para assigna variável um valor na mesma instrução, você pode então seguir o nome da variável com “ITZ” e, em seguida, fornecer o valor que deseja atribuir. Use a seguinte sintaxe para atribuir um valor a uma variável -
<variable> R <expression>
Exemplo
VAR R "Green" BTW VAR is now a YARN and equals "Green"
VAR R 30 BTW VAR is now a NUMBR and equals 30
Você também pode declare e assign variáveis ao mesmo tempo usando a seguinte sintaxe -
I HAS A VAR ITZ VALUE
Exemplo
I HAS A NAME ITS “TUTORIALS POINT”
Exemplo
HAI 1.2
BTW this is how we declare variables
I HAS A food
I HAS A bird
BTW this is how we assign variables
food R 1
bird R 5
BTW this is how initialize variables
I HAS A biz ITZ "OMG!"
VISIBLE food
VISIBLE biz
VISIBLE bird
KTHXBYE
O programa acima mostra a declaração de variáveis e as imprime. O resultado é -
sh-
4.3$ lci main.lo
1
OMG!
5
Fundição de Tipo
Para converter um valor de um tipo em outro, usamos fundição de tipo. Converter um NUMBAR em um NUMBR trunca a parte decimal do número de ponto flutuante. Lançar um NUMBAR em um YARN (imprimindo-o, por exemplo) trunca a saída para 2 casas decimais padrão.
Exemplo
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
A linha de código acima produzirá a seguinte saída -
sh-4.3$ lci main.lo
111.00033
111.00033
Todas as variáveis declaradas em um programa LOLCODE são variáveis locais e não há escopo global nesta linguagem para qualquer variável.