Lolcode - Các loại
LOLCODE được thiết kế để kiểm tra các ranh giới của thiết kế ngôn ngữ lập trình. Nó là một ngôn ngữ lập trình bí truyền lấy cảm hứng từ những điều vui nhộn trên Internet. Chương này cung cấp cho bạn sự hiểu biết về các loại LOLCODE.
Các loại
Hiện tại, các loại biến trong LOLCODE là -
- chuỗi (SỢI)
- số nguyên (NUMBR)
- nổi (NUMBAR)
- và booleans (TROOF)
- Mảng (BUKKIT)
Trong LOLCODE, kiểu biến được trình biên dịch xử lý động. Nếu một biến không có giá trị ban đầu, nó được gọi là không định kiểu (được gọi là NOOB trong LOLCODE).
Cú pháp khai báo và sử dụng các kiểu khác nhau trong LOLCODE được trình bày dưới đây:
Để tạo một biến của bất kỳ kiểu dữ liệu nào
I HAS A <VARIABLE> ITZ A <DATA TYPE>
Để tạo một biến và gán giá trị cho nó
I HAS A <VARIABLE> ITZ <EXPRESSION<
Để gán giá trị cho một kiểu dữ liệu đã được tạo
<VARIABLE> R <EXPRESSION>
Không định kiểu (NOOB)
Không thể chuyển đổi kiểu dữ liệu chưa định kiểu (được gọi là NOOB) thành bất kỳ kiểu nào khác ngoại trừ thành kiểu dữ liệu TROOF. Việc ép kiểu ngầm một NOOB vào TROOF làm cho biến FAIL. Sau đó, bất kỳ thao tác nào trên NOOB đều dẫn đến lỗi.
Các mẫu rõ ràng của kiểu dữ liệu NOOB (tức là các kiểu chưa được khởi tạo và không có bất kỳ giá trị ban đầu nào) biến kết quả thành giá trị 0 cho tất cả các kiểu khác.
Để xác định một biến không định kiểu, chỉ cần khai báo một biến và gán một giá trị như trong ví dụ này -
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
Khi bạn chạy chương trình trên, bạn sẽ thấy kết quả sau:
sh-
4.3$ lci main.lo
ANYVALUE
44
Booleans (TROOFS)
Trong LOLCODE, các giá trị Boolean có hai loại. BOOLEAN thường có hai giá trị - đúng và sai. Tuy nhiên, trong LOLCODE, Boolean được gọi là TROOF và các giá trị đúng / sai được gọi là WIN / FAIL tương ứng. Tất cả các giá trị chưa được khởi tạo như một chuỗi rỗng ("") hoặc một mảng trống đều sẽ chuyển thành FAIL. Tất cả các giá trị khởi tạo khác đánh giá thành WIN.
Thí dụ
HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
VISIBLE VAR3
KTHXBYE
Bạn có thể thấy kết quả sau khi thực thi đoạn mã trên:
sh-4.3$ lci main.lo
FAIL
Loại số (NUMBR)
Trong LOLCODE, NUMBR là viết tắt của một số nguyên. Bất kỳ dãy chữ số nào cũng được coi là một NUMBR, trừ khi nó có một số thập phân xuất hiện ở bất kỳ đâu giữa dãy số. Để làm cho bất kỳ số nào là số âm, nó có thể được đặt trước bởi một dấu gạch ngang (-) biểu thị một số âm.
Thí dụ
HAI 1.2
I HAS A VAR3 ITZ A NUMBR
VISIBLE VAR3
KTHXBYE
Đoạn mã trên hiển thị cho bạn kết quả sau khi bạn chạy nó−
sh-
4.3$ lci main.lo
0
Tương tự như NUMBR, LOLCODE có một kiểu dữ liệu khác, đại diện cho một số thập phân hoặc một số thực trong nhiều ngôn ngữ lập trình. Trong LOLCODE, NUMBAR là một số thực chứa một dấu thập phân. Việc truyền một NUMBAR thành NUMBR sẽ cắt bớt phần thập phân của số dấu phẩy động và trả về nó dưới dạng NUMBR, không có bất kỳ số thập phân nào.
Chuỗi (SỢI)
Trong LOLCODE, giá trị chứa chuỗi, tức là chuỗi ký tự (YARN) phải bắt đầu và kết thúc bằng dấu ngoặc kép ("”).
Bất kỳ thứ gì có thể được viết bên trong chuỗi, như dấu cách, dấu phẩy, dấu chấm hết, dấu chấm than hoặc bất kỳ ký hiệu nào khác. Một chuỗi mà bất kỳ trích dẫn nào bị thiếu có thể gây ra lỗi. Dấu hai chấm được sử dụng làm ký tự thoát trong LOLCODE và bất kỳ giá trị nào sau dấu hai chấm đều có ý nghĩa đặc biệt.
:) - Dấu ngoặc đóng sau dấu hai chấm biểu thị một dòng mới (\ n)
:> - Dấu ngoặc nhọn đóng sau dấu hai chấm biểu thị một tab (\ t)
:o - A ‘o’ ký tự sau dấu hai chấm đại diện cho tiếng chuông (tiếng bíp) (\ g)
:" - Dấu “đứng sau dấu hai chấm biểu thị một dấu ngoặc kép theo nghĩa đen (")
:: - Dấu hai chấm theo sau dấu hai chấm đại diện cho một dấu hai chấm đơn (:)
Thí dụ
HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
VISIBLE VAR3
KTHXBYE
Đoạn mã được đưa ra ở trên tạo ra kết quả sau khi thực thi:
sh-
4.3$ lci main.lo
XYZ
BUKKIT
Kiểu này đại diện cho một mảng. Nó có các khe được đặt tên, có thể chứa các biến hoặc hàm. Một BUKKIT có thể được khai báo theo cách sau:
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
Một hàm bên trong BUKKIT cũng có thể truy cập các biến và các hàm khác của BUKKIT bằng cách sử dụng ME'Z [var] hoặc ME IZ [tên hàm] (YR [đối số1] (AN YR [đối số2] (AN YR [đối số3] ... ))) THAY.
Thí dụ
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
Đây là đầu ra bạn sẽ tìm thấy khi chạy đoạn mã được đưa ra ở trên -
sh-
4.3$ lci main.lo
DOGE