《루아프로그래밍》 독서노트 제3장: 표현식
3.1 산술 조작부호
산술 조작부호는 2원에'+'를 더하고'-'를 줄이고'*'를 곱하고'/'를 제외하고 지수'^'를 추출하고'%'를 취하며 1원의 마이너스'-'가 있다.Lua에서 모든 조작부호는 실수에 사용할 수 있으며, 특히 추출 연산의 사용에 주의해야 한다.콜아웃 작업자는 다음 규칙에 따라 정의됩니다.
a%b=a-floor(a/b)*b; //floor(x) , x
정수로 말하자면, 계산 결과의 기호는 영원히 두 번째 매개 변수와 같다.실수의 경우 다음과 같이 사용할 수 있습니다.
x%1 --> x
x-x%1 --> x
x-x%0.01 -->x
angle%(2*math.pi) --> [0,2π]
3.2 관계 조작부호
Lua에서 제공하는 관계 연산자:
< > <= >= == ~=
주의해야 할 것은 두 값이 서로 다른 유형을 가지고 있다면 루아는 서로 다르다고 생각한다.nil은 자신과 같다.두 개의 숫자나 두 문자열만 크기를 비교할 수 있으며, 다른 종류에서는 이 동작을 지원하지 않습니다.만약 비교한 두 개의 값 유형이 다르면 오류가 발생하기 때문에 하나의 문자열과 하나의 숫자는 크기를 비교할 수 없다.Lua는 문자열의 크기를 사전 순서대로 비교합니다.
3.3 논리 연산자
논리 연산자는 다음과 같습니다.
and or not
and의 경우, 만약 첫 번째 조작수가 가짜라면, 첫 번째 조작수를 되돌려주고, 그렇지 않으면 두 번째 조작수를 되돌려준다.or의 경우, 첫 번째 조작수가 진짜라면, 첫 번째 조작수를 되돌려주고, 그렇지 않으면 두 번째 조작수를 되돌려줍니다.위에서 알 수 있듯이 and와 or도 단거리 값을 사용하지만, 다른 것은 그것들의 반환 값은true나false가 아니라 모든 종류의 값이 될 수 있다는 것이다.
print(4 and 5) -->5
print(nil and 13) -->nil
print(false and 13) -->false
print(4 or 5) -->4
print(false or 5) -->5
이러한 특성을 바탕으로 Lua에는 자주 사용하는 쓰기 방법인'x=x or v'가 있는데 이것은'if not x then x=v end'와 같다. 이런 쓰기 방법은 매개 변수에 기본값을 설정하는 데 사용할 수 있다.
function(a)
a = a or 5 --> a 5
...
end
또 다른 습관적인 쓰기 방법인'(a and b) or c'는 a와 유사합니까?b:c, 그러나 전제는 b가 가짜가 아니다.not는 되돌리는 데 사용되며,true나false만 영원히 되돌려줍니다.
3.4 문자열 연결부
Lua에 두 문자열을 연결하여 ".."을 사용할 수 있습니다.주의해야 할 것은 Lua의 문자열은 변할 수 없는 값이며 연결 작업은 새로운 문자열만 만들고 원래의 문자열은 수정하지 않습니다.
3.5 우선 순위
대략
3.6 테이블 구성
구조식은 테이블을 만들고 초기화하는 데 사용되는 표현식입니다.가장 간단한 구조식은 빈 구조식 {}입니다. 빈 테이블을 만드는 데 사용됩니다.구조식은 그룹을 초기화하는 데도 사용되며, 인덱스는 기본적으로 1부터 시작합니다.
num = {1, 2, 3} //a[1] = 1, a[2] = 2, a[3] = 3
또한 테이블을 초기화하는 데 사용되는 특수한 문법을 제공했다
a = {x = 10, y = 20} //a["x"] = 10, a["y"] = 20, ,
Lua가 구조를 평가할 때마다 새 테이블을 만들고 초기화합니다. 그러면 테이블로 다음 체인 테이블 코드를 쓸 수 있습니다.
//
list = nil
for line in io.lines() do
list = {next = list, value = line}
end
//
local l = list
while l do
print(l.value)
l = l.next
end
Lua는 더욱 일반적인 초기화 방식을 제공했다
opnames = {["+"] = "add", ["-"] = "sub", ["*"] = "mul", ["/"] = "div"}
이런 방식을 통해 우리는 초기화에서 어떤 종류의 색인 값을 사용할 수 있다.어떤 경우, 당신은 그룹의 초기 인덱스 값을 지정할 수 있습니다
num = {[0] = 0, 1, 2, 3, 4, 5} --> 0 ,
마지막으로 하나의 구조식에서 쉼표 대신 분호를 사용할 수 있으며 보통 서로 다른 성분을 분할하는 데 쓰인다.
local t = {x= 10, y = 45; "one", "two", "three"} -->t[1] = "one", t[2] = "two"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.