본문 바로가기

Lua7

Lua 정리 ) 코루틴 Lua는 코루틴(coroutine)을 지원합니다. 코루틴 : 협력적인 멀티스레딩 Lua의 코루틴은 스레드와는 독립적으로 실행됩니다. 따라서 시스템에서 사용하는 스레드와는 달리 코루틴은 명시적으로 yield() 함수를 호출할 때만 실행이 중단되지요. 코루틴의 생성은 coroutine.create() 함수를 호출해야 합니다. create() 함수는 인자를 가져야 하는데 그 인자는 함수입니다. coroutine.create() 함수는 핸들을 반환합니다. 핸들 : 스레드 타입의 객체 누군가는 이것을 받아야겠지요. 코루틴 생성은 다음과 같습니다. 코루틴의 실행은 coroutine.resume() 함수를 호출하여 실행할 수 있습니다. 처음으로 coroutine.resume() 함수를 호출하면 coroutine.cr.. 2022. 1. 8.
Lua 정리 ) 함수 Lua 함수의 기본 모양은 다음과 같습니다. 이런 모양만 있는 것이 아닙니다. 이렇게도 선언하고 사용할 수 있지요. 테이블 안에도 함수를 선언할 수 있습니다. 지역 함수는 이렇게 선언합니다. 지역 함수 또한 다른 식으로 선언이 가능합니다. 하지만 이 예는 지역 함수의 원래 정의가 아닙니다. 함수 안에 f 함수를 포함하지 않아 참조가 불가능하기 때문입니다. Lua는 여러 값을 한 번에 반환할 수 있습니다. 더 이상 배열로 반환하지 마세요. 이제 Lua 함수의 매개변수, 인자를 봅시다. C#에서는 함수를 호출할 때, 선언부의 함수 인자와 개수 등이 다르다면 호출할 수 없습니다. 각각의 경우에 메서드 오버로딩을 해 주어야 하지요. Lua는 그런게 없습니다. 함수를 호출하는 f(1,2)와 함수의 선언부를 보면 .. 2022. 1. 7.
Lua 정리 ) 논리 연산자, 관계 연산자, 산술 연산자 and, or, not 보다는 &&, ||, ! 이 익숙하실겁니다. 어차피 사용법은 같아요. 표현 방법만 다를 뿐입니다. 모든 논리연산자는 false와 nil을 false로 판답하고 그 외의 모든 경우를 true로 판단합니다. 0 또한 true입니다. 먼저 and는 and로 묶인 양쪽의 조건식이 모두 참이어야 참을 반환합니다. a, b, c는 각각 10, 20, 30입니다. 9번째 줄 if의 조건식을 보면 ab "이거나" a를 2022. 1. 7.
Lua 정리) for, if for문은 숫자와 관련된 것과 일반적인 것, 두 가지가 있습니다. 여기에서는 숫자와 관련된 것을 먼저 다루겠습니다. 숫자와 관련된 for문은 제어 값의 계산이 진행되는 동안 해당 블록을 반복해서 실행합니다. for a = 0, 10, 1 do [반복 실행될 코드] end a=0은 반복문에 사용될 변수의 초기 값입니다. 그 오른쪽에 있는 10은 목표 값입니다. a가 목표 값이 될 때까지 반복됩니다. 주의할 점은 목표 값이 도달 하고도 한번 더 실행한다는 것입니다. 목표 값과 변수의 값이 == 하면 멈추는 것이 아닙니다. 1은 반복할 때마다 커지거나 작아질 값이 됩니다. 이 코드에서 a는 0부터 시작해 총 10번 반복 실행될 코드를 실행합니다. for문 안에서 선언된 변수는 for 청크 안에서만 사용할 수 .. 2022. 1. 6.