Menu
Coddy logo textTech

coroutine create와 resume

Coddy Lua 여정의 Logic & Flow 섹션에 포함된 레슨 — 54개 중 49번째.

이제 코루틴이 무엇인지 이해했으므로, Lua에서 실제로 코루틴을 생성하고 실행하는 방법을 배워보겠습니다.

코루틴을 생성하려면 coroutine.create() 함수를 사용합니다. 이 함수는 일반 함수를 인자로 받아 코루틴 객체로 감쌉니다. 기본적인 구문은 다음과 같습니다:

function myTask()
    print("Hello from coroutine!")
end

local co = coroutine.create(myTask)

이 시점에서 코루틴은 존재하지만 아직 실행을 시작하지 않았습니다. myTask 함수는 호출되지 않았습니다. 코루틴의 실행을 실제로 시작하거나 계속하려면 coroutine.resume()을 사용합니다:

coroutine.resume(co)

코루틴에서 처음으로 resume()을 호출하면, 해당 함수의 시작 부분부터 실행을 시작합니다. 코루틴이 일시 중단 없이 끝까지 실행되면, 완료되어 다시 재개할 수 없습니다.

다음은 전체 예제입니다:

function greet()
    print("Starting...")
    print("Finishing!")
end

local co = coroutine.create(greet)
coroutine.resume(co)  -- 두 메시지를 모두 출력합니다

코루틴은 처음부터 끝까지 한 번에 실행됩니다. 다음 레슨에서는 실행 중간에 코루틴을 일시 중지하는 방법을 배우게 됩니다.

challenge icon

챌린지

쉬움

message를 인자로 받아 해당 메시지를 출력하는 코루틴의 결과를 반환하는 runSimpleCoroutine 함수를 작성하세요.

제공된 메시지를 출력하는 함수를 감싸는 코루틴을 coroutine.create()를 사용하여 생성하세요. 그런 다음 coroutine.resume()을 사용하여 코루틴을 실행합니다. 함수는 출력된 메시지를 반환해야 합니다.

로직:

  • 메시지 파라미터를 출력하는 함수를 정의합니다.
  • coroutine.create()를 사용하여 해당 함수로부터 코루틴을 생성합니다.
  • coroutine.resume()을 사용하여 코루틴을 재개(실행)합니다.
  • 출력된 메시지를 반환합니다.

파라미터:

  • message (string): 코루틴에 의해 출력될 메시지

반환값: 코루틴에 의해 출력된 메시지 (string)

치트 시트

코루틴을 생성하려면 함수를 인수로 사용하는 coroutine.create()를 사용하세요:

function myTask()
    print("Hello from coroutine!")
end

local co = coroutine.create(myTask)

코루틴의 실행을 시작하거나 계속하려면 coroutine.resume()을 사용하세요:

coroutine.resume(co)

전체 예제:

function greet()
    print("Starting...")
    print("Finishing!")
end

local co = coroutine.create(greet)
coroutine.resume(co)  -- 두 메시지를 모두 출력합니다

resume()가 처음 호출되면 코루틴은 처음부터 실행을 시작합니다. 일시 중지 없이 완료될 때까지 실행되면 다시 재개할 수 없습니다.

직접 해보기

function runSimpleCoroutine(message)
    -- 여기에 코드를 작성하세요
end
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨