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.