Lolcode - Typen

LOLCODE wurde entwickelt, um die Grenzen des Programmiersprachenentwurfs zu testen. Es ist eine esoterische Programmiersprache, die von den lustigen Dingen im Internet inspiriert ist. Dieses Kapitel vermittelt Ihnen ein Verständnis der LOLCODE-Typen.

Typen

Derzeit sind die Variablentypen in LOLCODE -

  • Saiten (YARN)
  • ganze Zahlen (NUMBR)
  • schwimmt (NUMBAR)
  • und Boolesche Werte (TROOF)
  • Arrays (BUKKIT)

In LOLCODE wird der Variablentyp vom Compiler dynamisch behandelt. Wenn eine Variable keinen Anfangswert hat, wird sie als untypisiert bezeichnet (in LOLCODE als NOOB bezeichnet).

Die Syntax zum Deklarieren und Verwenden verschiedener Typen in LOLCODE ist unten dargestellt:

So erstellen Sie eine Variable eines beliebigen Datentyps

I HAS A <VARIABLE> ITZ A <DATA TYPE>

So erstellen Sie eine Variable und weisen ihr einen Wert zu

I HAS A <VARIABLE> ITZ <EXPRESSION<

So weisen Sie einem bereits erstellten Datentyp einen Wert zu

<VARIABLE> R <EXPRESSION>

Untyped (NOOB)

Der untypisierte Datentyp (bekannt als NOOB) kann nur in einen TROOF-Datentyp in einen anderen Typ konvertiert werden. Das implizite Casting eines NOOB in TROOF macht die Variable FAIL. Danach führt jede Operation an einem NOOB zu einem Fehler.

Explizite Casts eines NOOB-Datentyps (dh der Typen, die nicht initialisiert sind und keinen Anfangswert haben) ergeben für alle anderen Typen Nullwerte.

Um eine untypisierte Variable zu definieren, deklarieren Sie einfach eine Variable und weisen Sie einen Wert zu, wie in diesem Beispiel gezeigt.

HAI 1.2
I HAS A VAR3
VAR3 R "ANYVALUE"
VISIBLE VAR3

BTW Or declare in same line
I HAS A VAR4 ITZ 44
VISIBLE VAR4
KTHXBYE

Wenn Sie das obige Programm ausführen, finden Sie das folgende Ergebnis:

sh-
4.3$ lci main.lo 
ANYVALUE
44

Boolesche Werte (TROOFS)

In LOLCODE gibt es zwei Arten von Booleschen Werten. BOOLEAN hat im Allgemeinen zwei Werte - wahr und falsch. In LOLCODE ist der Boolesche Wert jedoch als TROOF bekannt, und die True / False-Werte sind als WIN / FAIL bekannt. Alle nicht initialisierten Werte wie eine leere Zeichenfolge ("") oder ein leeres Array werden in FAIL umgewandelt. Alle anderen initialisierten Werte werden als WIN ausgewertet.

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
   VISIBLE VAR3
KTHXBYE

Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen -

sh-4.3$ lci main.lo
FAIL

Numerische Typen (NUMBR)

In LOLCODE steht ein NUMBR für eine ganze Zahl. Jede Ziffernfolge wird als NUMBR betrachtet, es sei denn, irgendwo zwischen der Folge erscheint eine Dezimalstelle. Um eine Zahl negativ zu machen, kann ein Bindestrich (-) vorangestellt werden, der eine negative Zahl kennzeichnet.

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A NUMBR
   VISIBLE VAR3
KTHXBYE

Der obige Code zeigt Ihnen das folgende Ergebnis, wenn Sie es ausführen

sh- 
4.3$ lci main.lo
0

Ähnlich wie NUMBR hat LOLCODE einen anderen Datentyp, der in vielen Programmiersprachen eine Dezimalzahl oder einen Gleitkommawert darstellt. In LOLCODE ist eine NUMBAR ein Gleitkomma mit einem Dezimalpunkt. Durch das Umwandeln einer NUMBAR in eine NUMBR wird der Dezimalteil der Gleitkommazahl abgeschnitten und als NUMBR ohne Dezimalzahl zurückgegeben.

Saiten (Garn)

In LOLCODE sollte ein Wert, der Zeichenfolgen enthält, dh Zeichenfolgenliterale (YARN), mit doppelten Anführungszeichen ("") beginnen und enden.

Alles kann in die Zeichenfolge geschrieben werden, z. B. Leerzeichen, Komma, Punkt, Ausrufezeichen oder ein anderes Symbol. Eine Zeichenfolge, in der ein einfaches Anführungszeichen fehlt, kann einen Fehler verursachen. Doppelpunkte werden in LOLCODE als Escape-Zeichen verwendet, und jeder Wert nach einem Doppelpunkt erhält eine besondere Bedeutung.

  • :) - Eine schließende Klammer nach einem Doppelpunkt steht für eine neue Zeile (\ n).

  • :> - Eine schließende Klammer nach einem Doppelpunkt steht für eine Registerkarte (\ t).

  • :o - A. ‘o’ Das Zeichen nach einem Doppelpunkt steht für eine Glocke (Piepton) (\ g).

  • :" - Ein "nach einem Doppelpunkt steht für ein wörtliches doppeltes Anführungszeichen (")

  • :: - Ein Doppelpunkt nach einem Doppelpunkt steht für einen einzelnen wörtlichen Doppelpunkt (:)

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
   VISIBLE VAR3
KTHXBYE

Der oben angegebene Code erzeugt bei der Ausführung die folgende Ausgabe:

sh-
4.3$ lci main.lo 
XYZ

BUKKIT

Dieser Typ repräsentiert ein Array. Es hat Slots benannt, die entweder Variablen oder Funktionen enthalten können. Ein BUKKIT kann folgendermaßen deklariert werden:

BTW declaration of the BUKKIT
I HAS A [object] ITZ A BUKKIT BTW creating a variable in a slots
[object] HAS A [var] ITZ [value] BTW creating a function inside the BUKKIT

HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
[function code]
IF U SAY SO

Eine Funktion in einem BUKKIT kann auch mit ME'Z [var] oder ME IZ [Funktionsname] (YR [Argument1] (AN YR [Argument2] (AN YR [Argument3] ...) auf Variablen und andere Funktionen des BUKKIT zugreifen. ))) MKAY.

Beispiel

HAI 1.2
   I HAS A VAR6 ITZ A BUKKIT
   BTW DECLARING AN ARRAY
   VAR6 HAS A VAR7 ITZ "DOGE"
   
   BTW VAR7 IS A STRING VARIABLE THAT IS INSERTED  INTO ARRAY VAR6
   VISIBLE VAR6'Z VAR7
   BTW GET THE ELEMENT OF ARRAY
KTHXBYE

Dies ist die Ausgabe, die Sie finden, wenn Sie den oben angegebenen Code ausführen -

sh-
4.3$ lci main.lo 
DOGE