[8] 오토핫키 완벽분해 강좌 - 변수

Posted by 아이티프로13
2018. 12. 29. 18:41 프로그래밍/AutohotKey

안녕하세요. 쿠과자입니다.


이번시간에는 어떻게보면 프로그래밍 언어에 꼭 필요하고!!

어떤분에게는 정말 어렵게 다가올수도있는..

'변수'라는 개념에 대해서 알아보도록 하겠습니다.

오토핫키의 변수 체제는 일반적인 언어와 약간 달라서

완벽히 이해하는데 약간 어려울수도 있습니다. 저도 살짝 헷갈리는 감이 많고요.

아무튼 시작해보겠습니다.




변수란?

변수(變數)는 말 그대로 움직이는 수, 변하는 수입니다.

이런 변수에는 여러가지 값을 넣어

이를 여러가지 명령어에 활용할 수 있죠.


여기서 말하는 '값'은 정말 스펙트럼이 다양합니다.

단순한 bool(참,거짓인 true, false)부터

숫자(실수), 문자, 문자열

다양한 값을 변수를 통해 표현할 수 있습니다.


이전 시간에 배웠던 Mousemove,x,y 에서도

x, y 부분에 저희가 숫자를 넣었지만 이는 결국 변수라고 할 수 있는거죠.


그 외에도, Send, {키 이름} 이런 명령어에서도

키 이름 부분을 변수로 처리하기때문에

변수에 대신 키이름을 넣고 저 부분에 변수를 입력하면

마찬가지로 사용할 수 있습니다.



변수 정의방법


변수를 정의하는데는 두가지 방법이 있습니다.

첫번째는 equal sign operator, 즉 등호(=)를 이용하는 방법입니다.


1. 변수 이름 = 값


변수 이름은, 값 대신 사용할 임의의 문자를 사용하시면 됩니다.

값의 경우, 말 그대로 실제로 쓰여질 값입니다.

다음과 같이 사용하면 됩니다.


Mynumber = 123

Mystring = 이건 문자열입니다.

Msgbox,%Mynumber%

Msgbox,%Mystring%



위와 같이, %Mynumber%  라는 말이 나오는 대신 Mynumber 변수로 정해진 값인 123이 나오고

마찬가지로 %Mystring%이 아닌 '이건 문자열입니다'라는 글자가 나오는 것을 보실수 있습니다.


Ps. 값에 Mynumber에 %을 붙여준 이유는 추후에 서술하겠지만 호출할 때 변수명의 양 옆을 %로 감싸줘야 호출이 됩니다.





2. 변수이름 := 값


두번째론 위와 같이 선언하는 겁니다.

차이점은, 중간이 등호가 아닌 colon-equal operator (:=) 를 이용했다는 건데요(한글론 먼지 모르겠네요 ㅋㅋ;;)


이는 약간 특이한 점이 있는데요.

바로 '안의 값'을 넣는다는 특징이 있습니다.

약간 추상적이긴 한데... 다음 예시를 보시죠.


Mynumber = 123

Mystring := "이건 문자열입니다."


Msgbox,Mynumber = %Mynumber%

Msgbox,Mystring = %Mystring%


Mystring2 := Mystring

Mystring3 = Mystring

Msgbox,Mystring2 =  %Mystring2%

Msgbox,Mystring3 =  %Mystring3%


위의 소스코드를 한번 읽어보시고 실행해보시면, 제 말이 어느정도는 이해가 될것입니다.

그냥 등호를 이용해 정의한것과 다르게, 저기에서는 문자열을 정의할때 앞에 큰따움표(")를 넣어줬습니다.

:= 는 안의 값을 넣어주기때문에, 문자열의 경우 큰따움표로 포장을 해야(?) 안의 값을 인식해 정의할 수 있는 거죠


그리고 또한 Mystring2 와 Mystring3 정의할때도 마찬가지입니다.

Mystring2에서는 :=를 이용했는데, 이를 이용해 변수명을 우변(값)에 넣으면

변수 안의 값이 Mystring2에 들어갑니다.

그렇기 때문에 Mystring2 에서는 Mystring의 값인 '이건 문자열입니다.'라는 값이 들어가죠.


반대로 =를 이용할때는 Mystring의 값이 그대로 대입이 되어

실제로 테스트해보면

Mystring3의 값은 Mystring으로 되는것을 확인하실 수 있습니다.



이 두가지 정의용 연산자는 굉장히 헷갈리므로

반드시 완벽히 구분하시길 바랍니다.


변수 호출하기



변수 호출은 선언하는것에 비해서 간단합니다.

위에서도 사용했지만, 단순히 % 안으로 감싸주면 됩니다.


이를 통해, 지금까지 배웠던 명령어들 중 뒤에 붙은 패러미터들을 거의다 대체할수 있다고 생각하시면 됩니다.

예를 들어봅시다.


F5::

loopnum=10

sendkey:="hello"

loop %loopnum%

{

Send,%sendkey%

}

Return



이전에 배웠을때는 loop 뒤에 숫자를 넣고

Send 뒤에 칠 문자열을 적었겠지만

그걸 변수로 대체한 모습입니다.




마치며..


변수는 타 언어와 마찬가지로 오토핫키에서도 굉장히 많이 쓰이는 체제입니다.

반드시 완벽하게 알아야 이후에 지장이 없습니다.


더 자세히 알아보고자 하시는 분들은 오토핫키의 공식문서를 참조해보시길 바랍니다.

Variables https://autohotkey.com/docs/Variables.htm



오늘 강좌는 여기서 마치도록 하겠습니다.

감사합니다!


공감 버튼을 눌러주시면

블로거에게 힘이 됩니다!