[기초] Function 설명

오호 08.18 21:38 조회 275 댓글 0

앞에서 function 예시를 보여드리긴 했지만 낯선 요소가 많았을 겁니다.


세부적인 내용을 짚고 넘어 가겠습니다.


<함수 이름1>() {
    <수행할 내용>
    return
}

<함수 이름2>(변수1) {
    <변수1로 수행할 내용>
    return
}

<함수 이름3>(변수1,변수2) {
    <변수1,변수2로 수행할 내용>
    return
}
 


기본적인 형태는 이렇습니다.


앞의 예시를 다시 가져오면



CheckSpell(Spell) {
    sendinput '/%Spell%{Enter}{ESC}
    sleep 300
    return
}
 


CheckSpell 이 함수 이름

Spell ​이 parameter 입니다.


%Spell% 부분이 낯설 텐데 sendinput에 전달할 내용이

'S','p','e','l','l' 이 아니고

parameter의 Spell을 의미하는 것을 나타내기 위한 표시입니다.



CheckSpell(Spell) {
    sendinput '/딜 Spell{Enter}{ESC} ; 잘못된 코드
    sleep 300
    return
}
 


만약 이렇게 %% 기호를 빼먹게 되면


 

이렇게 그냥 "Spell"이 나오게 됩니다.




그러면 {} 중괄호(curly brackets/braces). 이 기호의 의미도 궁금해집니다.



F1::sendinput ESC
F2::sendinput {ESC}
 

이렇게 작성하고 실행해 보겠습니다.


 


F1::sendinput ESC 

는 'E','S','C' 각각의 key들을 순차적으로 입력하는 것이고


F2::sendinput {ESC}

는 ESC key 하나를 누르는 것입니다.


즉 {} 안에 들어가는 것은 하나의 key 이름에 해당합니다.


그렇기 때문에 

F1::sendinput {abcd}

이런 것은 사용할 수 없습니다.



%% 는 parameter를 구분하는 문자

{}는 Key 이름을 구분하는 문자라고 보시면 됩니다.


------------------------------------------------------------------------------------------


이번에는 위에 sleep 300 이라고 되어 있었는데, 이 부분도 parameter로 바꿔보겠습니다.


CheckSpell(Spell, Delay) {
    sendinput '/%Spell%{Enter}{ESC}
    sleep %Delay%
    return
}
 
1::CheckSpell("귀염추혼소", 100)
2::CheckSpell("파력무참", 300)
3::CheckSpell("탈명사식'풍", 500)
4::CheckSpell("만공", 300)
 


이렇게 Delay라는 새로운 parameter를 추가해주면 Delay도 마법마다 서로 다르게 줄 수 있습니다.



parameter에 기본값(default value)을 주는 것도 가능합니다.

기본값은 parameter에 값을 주지 않았을 때 사용될 값입니다.


1::CheckSpell("귀염추혼소", 100)
2::CheckSpell("파력무참")
3::CheckSpell("탈명사식'풍", 500)
4::CheckSpell("만공")


CheckSpell(Spell, Delay := 300) {
    sendinput '/%Spell%{Enter}{ESC}
    sleep %Delay%
    return
}
 


Delay := 300 이 표시는 Delay 자리에 아무것도 주지 않으면

300이라는 값을 기본으로 사용하겠다는 의미가 됩니다.


예시에서 "파력무참", "만공"은 Delay가 default value인 300으로 적용됩니다.




댓글 0