[8] 오토핫키 완벽분해 강좌 - 변수
안녕하세요. 쿠과자입니다.
이번시간에는 어떻게보면 프로그래밍 언어에 꼭 필요하고!!
어떤분에게는 정말 어렵게 다가올수도있는..
'변수'라는 개념에 대해서 알아보도록 하겠습니다.
오토핫키의 변수 체제는 일반적인 언어와 약간 달라서
완벽히 이해하는데 약간 어려울수도 있습니다. 저도 살짝 헷갈리는 감이 많고요.
아무튼 시작해보겠습니다.
변수란?
변수(變數)는 말 그대로 움직이는 수, 변하는 수입니다.
이런 변수에는 여러가지 값을 넣어
이를 여러가지 명령어에 활용할 수 있죠.
여기서 말하는 '값'은 정말 스펙트럼이 다양합니다.
단순한 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
오늘 강좌는 여기서 마치도록 하겠습니다.
감사합니다!
↓ 공감♥ 버튼을 눌러주시면
블로거에게 힘이 됩니다!
'프로그래밍 > AutohotKey' 카테고리의 다른 글
[10] 오토핫키 완벽분해 강좌 - 연산자 [2. 비교 연산자, 논리 연산자] (0) | 2019.03.31 |
---|---|
[9] 오토핫키 완벽분해 강좌 - 연산자 [1. 산술 연산자, 대입 연산자] (0) | 2019.03.30 |
[7] 오토핫키 완벽분해 강좌 - Loop 문. (1) | 2018.12.16 |
[6] 오토핫키 완벽분해 강좌 - 마우스 조작 (1) | 2018.12.15 |
[5] 오토핫키 Autohotkey 완벽분해 강좌 - Sleep (1) | 2018.05.09 |