본문 바로가기
이미지맥스 그리고 루아(lua)/루아(lua)

[lua] 함수 정의시 인수의 기본값 지정하는 방법

by 위치결정 2021. 8. 3.
반응형

lua로 스크립트 코딩을 하면서 함수의 정의는 필수적으로 하게됩니다.

그런데 함수를 사용할때 꼭 인수를 지정하지 않더라도 기본값을 바인딩하여 자동으로 실행되게 하고 싶은 경우가 있습니다.

 

# 파이썬의 경우
def hello(name, greeting = 'nice to meet you'):
    print(name, greeting)

# 샘플
hello('gildong')
# >> gildong, nice to meet you.
hello('youngmi', 'how old are you?')
# >> youngmi, how old are you?

 

파이썬의 경우 함수의 인수를 정의할때 기본값을 정의해두면 됩니다.

하지만 루아에서는 파이썬과 같이 해버리면 즉시 컴파일 오류가 발생하게 됩니다.

 

루아에서는 두가지 방법으로 인수의 기본값을 지정할수 있습니다.

방법1. if 조건문을 이용하여 값을 정의하는 방법

방법2. local 변수를 새롭게 정의하여 인수의 값을 정의하거나 or 기본값을 정의하기

 

그럼 아래 예문으로 알아봅니다.

-- 루아의 경우
-- 방법1. if 조건문을 이용하여 값을 정의하는 방법
function hello(name, greeting)
    if greeting == nil then
        greeting = 'nice to meet you'
    end
    print(name, greeting)
end

-- 방법2. local 변수를 새롭게 정의하여 인수의 값을 정의하거나 or 기본값을 정의하기
function hello(name, greeting)
    local greeting = greeting or 'nice to meet you'
    print(name, greeting)
end


-- 샘플
hello('gildong')
-- >> gildong, nice to meet you.
hello('youngmi', 'how old are you?')
-- >> youngmi, how old are you?

간단합니다.

반응형

댓글