and
연산자는 조건이 참일 때만 뒤의 값을 반환하며, or
연산자는 조건이 거짓일 때 뒤의 값을 반환
--and
print(true and "This is true") -- 출력: "This is true"
-- 조건이 참이므로 뒤 반환
print(false and "This is false") -- 출력: false
-- 조건이 거짓이므로 뒤 반환 X
--or
print(false or "This is true") -- 출력: "This is true"
-- 조건이 거짓이므로 뒤 반환
print(true or "This is false") -- 출력: true
-- 조건이 참이르모 뒤 반환 X
#배열 = 배열의 길이
숫자 기반 for문
for i = start, stop, step do
-- 반복할 코드
end
i : 반복용 변수
start : i의 시작값
stop : i가 이 값이 될때까지
step : i를 step만큼씩 증가 → 값을 안주면 기본값 1
인덱스 기반 for문
for index, value in pairs(table) do
-- 반복할 코드
end
index : 테이블의 키 또는 인덱스 용 변수
value : 해당 키에 대한 값 용 변수
pairs(table) : 테이블의 키-값 쌍을 순회하는 함수
.
과 :
차이.
) 문법: target.functionName()
호출 시 self
를 명시적으로 전달하지 않음.:
) 문법: target:functionName()
호출 시 자동으로 self
가 첫 번째 인자로 전달됨.클래스.함수이름 → 첫번째 인자를 self로 전달 ❎, 내가 만든대로 작동
클래스:함수이름 → 자동으로 첫번째 인자를 self로 전달함
함수 호출 시에도 동일!
클래스.함수이름 → 첫번째 인자를 self로 전달 ❎
클래스:함수이름 →
.
→ 객체와 관계 없는 단순한 함수 호출
:
→ 객체와 관련된 메서드 호출
<aside>
🎨 .
으로 만든 함수를 :
로 호출하면?
원래 함수는 target, widthLimit을 인자로 받는데 바뀐 모습
클래스:함수(a,b)라고 호출하면 내부적으로 클래스:함수(self,a,b)로 바뀐다
그런데 함수는 self를 기대하지 않기 때문에 실제로는 self가 a로 전달되고 b에 a가 전달된다!
</aside>