Lolcode-연산자
연산자는 변수에 대한 다양한 작업을 수행하는 데 중요한 역할을합니다. 이 장에서는 LOLCODE의 다양한 연산자와 사용법에 대해 설명합니다.
연산자
수학 연산자는 접두사 표기법, 즉 피연산자 앞에 오는 표기법에 따라 다릅니다. 모든 연산자에 알려진 수의 인수 또는 피연산자가 있으면 그룹화 마커가 필요하지 않습니다. 연산자에 고정 인수 또는 피연산자가없는 경우 연산은 MKAY로 닫힙니다.
MKAY는 명령문의 끝과 일치하면 사용할 수 없습니다. 이러한 경우 EOL 키워드를 사용해야합니다. 단항 수학 연산자를 사용하려면 다음 구문을 사용하십시오.
<operator> <expression>
AN 키워드는 선택적으로 인수를 분리하는 데 사용할 수 있으며 둘 이상의 피연산자에 단일 연산을 적용하므로 이항 연산자 표현식은 다음 구문을 갖습니다.
<operator> <expression1> AN <expression2>
무한한 수의 인수를 가진 연산자를 포함하는 모든 표현식은 다음 구문으로 표현할 수 있습니다.
<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY
수학
다음은 LOLCODE의 기본 수학 연산입니다-
SUM OF <a> AN <b> BTW This is a plus + operator
DIFF OF <a> AN <n> BTW This is a minus - operator
PRODUKT OF <a> AN <n> BTW This is a multiply operator *
QUOSHUNT OF <a> AN <n> BTW This is a divide operator
MOD OF <a> AN <n> BTW This is a modulo operator
BIGGR OF <a> AN <n> BTW This is a max operator
SMALLR OF <a> AN <n> BTW This is a min operator
<a> 및 <b>는 각각 위의 고유 한 표현식이 될 수 있으므로 수학 연산자는 무한히 중첩되고 그룹화 될 수 있습니다.
수학은 두 개의 NUMBR이있는 상태에서 인수를 정수 수학으로 고려하여 수행되지만 표현식 중 하나가 NUMBAR이면 연산은 부동 소수점 연산으로 간주됩니다.
예
HAI 1.2
I HAS A m ITZ 4
I HAS A n ITZ 2
VISIBLE SUM OF m AN n BTW +
VISIBLE DIFF OF m AN n BTW -
VISIBLE PRODUKT OF m AN n BTW *
VISIBLE QUOSHUNT OF m AN n BTW /
VISIBLE MOD OF m AN n BTW modulo
VISIBLE BIGGR OF m AN n BTW max
VISIBLE SMALLR OF m AN n BTW min
KTHXBYE
위의 코드는 실행할 때 다음과 같은 출력을 생성합니다.
sh-
4.3$ lci main.lo
6
2
8
2
0
4
2
중요한 포인트-
LOLCODE에서 수학 연산자 작업과 관련된 다음과 같은 중요한 사항을 고려하십시오.
식의 인수 중 하나 또는 둘 모두가 YARN이면 NUMBAR로 처리됩니다.
인수를 내부적으로 숫자 유형으로 안전하게 캐스트 할 수없는 경우 오류와 함께 실패합니다.
부울
부울 연산자는 true 또는 false 일 수있는 값에 적용됩니다. TROOF에서 작업하는 부울 연산자는 다음과 같습니다.
BOTH OF <m> AN <n> BTW its and operation: WIN if m = WIN and n = WIN
EITHER OF <m> AN <n> BTW its or operation: FAIL iff m = FAIL, n = FAIL
WON OF <m> AN <n> BTW its xor operation: FAIL if m = n
NOT <m> BTW its an unary negation: WIN if m = FAIL
ALL OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply AND
ANY OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply OR.
위의 표현식 구문에서 <m> 및 <n>은 아직 TROOF 값이 아닌 경우 자동으로 TROOF 값으로 캐스팅됩니다.
비교
LOLCODE에서 두 개 이상의 피연산자를 비교하려면 다음 방법 중 하나를 사용하면됩니다.
방법 1
같음 연산자를 사용하여 두 이진 피연산자를 비교할 수 있습니다. 구문은 다음과 같습니다.
BOTH SAEM <m> AN <n> BTW this will return WIN if m is equal to n
DIFFRINT <m> AN <n> BTW this will return WIN if m is not equal to n
방법 2
두 값이 모두 NUMBR 유형인지 비교할 수 있습니다. 값 중 하나가 NUMBAR이면 부동 소수점 값으로 비교됩니다.
방법 3
최소 및 최대 연산자를 사용하여 비교를 수행 할 수도 있습니다. 구문은 다음과 같습니다.
BOTH SAEM <m> AN BIGGR OF <m> AN <n>
BOTH SAEM <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN BIGGR OF <m> AN <n>
Example
HAI 1.2
I HAS A VAR11 ITZ 7
BOTH SAEM VAR11 SMALLR OF VAR11 AN 8, O RLY?
YA RLY
VISIBLE "TRUE"
NO WAI
VISIBLE "FALSE"
OIC
KTHXBYE
주어진 코드를 실행하면 다음 출력을 볼 수 있습니다.
sh-
4.3$ lci main.lo
TRUE
값의 연결
LOLCODE를 사용하면 SMOOSH… MKAY 연산자를 사용하여 무한한 수의 YARN을 명시 적으로 연결할 수 있습니다. 연결의 경우 여러 인수를AN 운영자.
예
HAI 1.2
I HAS A VAR1 ITZ A YARN
VAR1 R "TRUE"
I HAS A VAR2 ITZ A YARN
VAR2 R "ANOTHER TRUE"
I HAS A VAR3 ITZ A YARN
VAR3 R "ONE MORE TRUE"
VISIBLE SMOOSH VAR1 " " VAR3 " " VAR2 MKAY
KTHXBYE
위의 주어진 코드는 실행시 다음 결과를 생성합니다-
sh-
4.3$ lci main.lo
TRUE ONE MORE TRUE ANOTHER TRUE
유형 주조
특정 유형에서 작동하는 연산자는 한 유형의 값을 다른 유형으로 안전하게 캐스트하거나 변환합니다. 값을 다른 유형으로 안전하게 변환 할 수없는 경우 오류가 발생합니다.
표현식의 값은 이진 MAEK 연산자를 사용하여 명시 적으로 캐스트되거나 다른 유형으로 변환 될 수 있습니다. MAEK 연산자의 구문은-
MAEK <expression> A <type>
여기서 <type>은 TROOF, YARN, NUMBR, NUMBAR 또는 NOOB 중 하나 일 수 있습니다.
변수를 다른 유형으로 명시 적으로 캐스팅하려면 MAEK 연산자가있는 일반 할당 문을 사용하거나 다음과 같이 캐스팅 할당 문을 사용할 수 있습니다.
<Any_variable> IS NOW A <type> BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>
예
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
위의 코드는 다음 출력을 생성합니다.
sh-4.3$ lci main.lo
111.00033
111.00033