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문

  1. 숫자 기반 for문

    for i = start, stop, step do
    	-- 반복할 코드
    end
    

    i : 반복용 변수

    start : i의 시작값

    stop : i가 이 값이 될때까지

    step : i를 step만큼씩 증가 → 값을 안주면 기본값 1

  2. 인덱스 기반 for문

    for index, value in pairs(table) do
    	-- 반복할 코드
    end
    

    index : 테이블의 키 또는 인덱스 용 변수

    value : 해당 키에 대한 값 용 변수

    pairs(table) : 테이블의 키-값 쌍을 순회하는 함수


함수 생성 시 .: 차이

클래스.함수이름 → 첫번째 인자를 self로 전달 ❎, 내가 만든대로 작동

클래스:함수이름 → 자동으로 첫번째 인자를 self로 전달함

함수 호출 시에도 동일!

클래스.함수이름 → 첫번째 인자를 self로 전달 ❎

클래스:함수이름 →

. → 객체와 관계 없는 단순한 함수 호출

: → 객체와 관련된 메서드 호출

<aside> 🎨 .으로 만든 함수를 :로 호출하면?

원래 함수는 target, widthLimit을 인자로 받는데 바뀐 모습

원래 함수는 target, widthLimit을 인자로 받는데 바뀐 모습

클래스:함수(a,b)라고 호출하면 내부적으로 클래스:함수(self,a,b)로 바뀐다

그런데 함수는 self를 기대하지 않기 때문에 실제로는 self가 a로 전달되고 b에 a가 전달된다!

</aside>