Lolcode - ประเภท
LOLCODE ออกแบบมาเพื่อทดสอบขอบเขตของการออกแบบภาษาโปรแกรม เป็นภาษาโปรแกรมลึกลับที่ได้รับแรงบันดาลใจจากสิ่งตลก ๆ บนอินเทอร์เน็ต บทนี้จะช่วยให้คุณเข้าใจประเภท LOLCODE
ประเภท
ปัจจุบันประเภทตัวแปรใน LOLCODE คือ -
- สตริง (YARN)
- จำนวนเต็ม (NUMBR)
- ลอย (NUMBAR)
- และบูลีน (TROOF)
- อาร์เรย์ (BUKKIT)
ใน LOLCODE ประเภทตัวแปรจะถูกจัดการแบบไดนามิกโดยคอมไพลเลอร์ หากตัวแปรไม่มีค่าเริ่มต้นจะเรียกว่าไม่พิมพ์ (เรียกว่า NOOB ใน LOLCODE)
ไวยากรณ์สำหรับการประกาศและการใช้ประเภทต่างๆใน LOLCODE แสดงไว้ด้านล่าง -
เพื่อสร้างตัวแปรประเภทข้อมูลใด ๆ
I HAS A <VARIABLE> ITZ A <DATA TYPE>
เพื่อสร้างตัวแปรและกำหนดค่าให้กับมัน
I HAS A <VARIABLE> ITZ <EXPRESSION<
เพื่อกำหนดค่าให้กับชนิดข้อมูลที่สร้างไว้แล้ว
<VARIABLE> R <EXPRESSION>
ไม่ได้พิมพ์ (NOOB)
ประเภทข้อมูลที่ไม่ได้พิมพ์ (เรียกว่า NOOB) ไม่สามารถแปลงเป็นประเภทอื่นได้ยกเว้นเป็นประเภทข้อมูล TROOF การส่ง NOOB ไปยัง TROOF โดยปริยายทำให้ตัวแปร FAIL หลังจากนั้นการดำเนินการใด ๆ บน NOOB ส่งผลให้เกิดข้อผิดพลาด
การแคสต์ชนิดข้อมูล NOOB อย่างชัดเจน (เช่นชนิดที่ไม่ได้กำหนดค่าเริ่มต้นและไม่มีค่าเริ่มต้นใด ๆ ) ผลลัพธ์ของตัวแปรเป็นค่าศูนย์สำหรับประเภทอื่น ๆ ทั้งหมด
ในการกำหนดตัวแปรที่ไม่ได้พิมพ์เพียงแค่ประกาศตัวแปรและกำหนดค่าตามที่แสดงในตัวอย่างนี้ -
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
เมื่อคุณเรียกใช้โปรแกรมข้างต้นคุณจะพบผลลัพธ์ต่อไปนี้ -
sh-
4.3$ lci main.lo
ANYVALUE
44
บูลีน (TROOFS)
ใน LOLCODE ค่าบูลีนมีสองประเภท BOOLEAN โดยทั่วไปมีสองค่า - จริงและเท็จ แต่ใน LOLCODE บูลีนเรียกว่า TROOF และค่าจริง / เท็จเรียกว่า WIN / FAIL ตามลำดับ ค่าที่ไม่ได้กำหนดค่าเริ่มต้นทั้งหมดเช่นสตริงว่าง ("") หรืออาร์เรย์ว่างทั้งหมดจะส่งเป็น FAIL ค่าเริ่มต้นอื่น ๆ ทั้งหมดประเมินเป็น WIN
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
VISIBLE VAR3
KTHXBYE
คุณสามารถดูผลลัพธ์ต่อไปนี้เมื่อคุณรันโค้ดด้านบน -
sh-4.3$ lci main.lo
FAIL
ประเภทตัวเลข (NUMBR)
ใน LOLCODE NUMBR ย่อมาจากจำนวนเต็ม ลำดับของตัวเลขใด ๆ ถือเป็น NUMBR เว้นแต่จะมีทศนิยมปรากฏที่ใดก็ได้ระหว่างลำดับ ในการทำให้จำนวนใด ๆ เป็นลบอาจนำหน้าด้วยยัติภังค์ (-) ซึ่งหมายถึงจำนวนลบ
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A NUMBR
VISIBLE VAR3
KTHXBYE
โค้ดด้านบนจะแสดงผลลัพธ์ต่อไปนี้เมื่อคุณเรียกใช้
sh-
4.3$ lci main.lo
0
เช่นเดียวกับ NUMBR LOLCODE มีข้อมูลประเภทอื่นซึ่งแสดงถึงทศนิยมหรือทศนิยมในภาษาโปรแกรมต่างๆ ใน LOLCODE NUMBAR คือทศนิยมที่มีทศนิยมหนึ่งตำแหน่ง การแคสต์ NUMBAR เป็น NUMBR จะตัดทอนส่วนทศนิยมของตัวเลขทศนิยมและส่งกลับเป็น NUMBR โดยไม่มีจุดทศนิยม
สตริง (YARN)
ใน LOLCODE ค่าที่มีสตริงคือสตริงลิเทอรัล (YARN) ควรเริ่มต้นและลงท้ายด้วยเครื่องหมายคำพูดคู่ ("")
อะไรก็ได้ที่เขียนไว้ในสตริงเช่นเว้นวรรคลูกน้ำเครื่องหมายเต็มเครื่องหมายอัศเจรีย์หรือสัญลักษณ์อื่น ๆ สตริงที่ไม่มีเครื่องหมายคำพูดเดียวอาจทำให้เกิดข้อผิดพลาด โคลอนถูกใช้เป็นอักขระหลีกใน LOLCODE และค่าใด ๆ ที่ตามหลังเครื่องหมายจุดคู่จะมีความหมายพิเศษ
:) - วงเล็บปิดตามเครื่องหมายจุดคู่แทนขึ้นบรรทัดใหม่ (\ n)
:> - วงเล็บมุมปิดตามเครื่องหมายจุดคู่หมายถึงแท็บ (\ t)
:o - ก ‘o’ อักขระหลังเครื่องหมายทวิภาคหมายถึงระฆัง (บี๊บ) (\ g)
:" - A“ ตามหลังเครื่องหมายจุดคู่หมายถึงเครื่องหมายอัญประกาศคู่ตามตัวอักษร (")
:: - เครื่องหมายจุดคู่ตามเครื่องหมายจุดคู่หมายถึงเครื่องหมายทวิภาค (:)
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
VISIBLE VAR3
KTHXBYE
รหัสที่ให้ไว้ข้างต้นสร้างผลลัพธ์ต่อไปนี้เมื่อดำเนินการ -
sh-
4.3$ lci main.lo
XYZ
BUKKIT
ประเภทนี้แสดงถึงอาร์เรย์ มีชื่อสล็อตซึ่งสามารถมีตัวแปรหรือฟังก์ชันได้ สามารถประกาศ BUKKIT ได้ดังนี้ -
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
ฟังก์ชันภายใน BUKKIT ยังสามารถเข้าถึงตัวแปรและฟังก์ชันอื่น ๆ ของ BUKKIT ได้โดยใช้ ME'Z [var] หรือ ME IZ [ชื่อฟังก์ชัน] (YR [อาร์กิวเมนต์ 1] (AN YR [อาร์กิวเมนต์ 2] (AN YR [อาร์กิวเมนต์ 3] ... ))) MKAY
ตัวอย่าง
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
นี่คือผลลัพธ์ที่คุณจะพบเมื่อคุณเรียกใช้รหัสที่ระบุด้านบน -
sh-
4.3$ lci main.lo
DOGE