변수(Variable)

변수(Variable) 이란?

변수는 단축 명령어를 만들때 명령어의 인수 를 전달하기 위한 것입니다.

인수의 기본 사용 방법

예제 1.

/command $1 = /alias $1

결과: /command 1 을 입력하면 /alias 1 을 입력한 것으로 인식한다.

결과: /command 1 2 를 입력하면 없는 명령어로 간주된다.

결과: /command 를 입력하면 없는 명령어로 간주된다.

왼쪽 명령어를 플레이어가 입력할 때, /command 1 처럼 $<이름> 자리에 무언가를 입력하면 오른쪽 명령어의 $<이름> 부분이 해당 자리에 입력한 값이 됩니다. 또한 $<이름> 부분이 어떠한 값으로 채워지지 않았을 경우, 없는 명령어로 간주됩니다.

예제 2.

/command $1 $2 = /alias $2 $1

결과: /command 1 2 를 입력하면 /alias 2 1 을 입력한 것으로 인식한다.

결과: /command 1 을 입력하면 없는 명령어로 간주된다.

여러 변수들을 입력할 때 같은 변수 이름을 가지고 있는 것은 자리가 다르더라도 같은 값으로 간주됩니다. (즉, $1 은 모두 플레이어가 오른쪽 명령어에서 $1 의 자리에 입력한 값이 된다는 말)

예제 3.

/command $1 $1 = /alias $1 $1

결과: /command 1 2 를 입력하면 /alias 1 1 을 입력한 것으로 인식한다.

결과: /command 1 을 입력하면 없는 명령어로 간주된다.

같은 이름의 변수가 오른쪽에 여러개가 있다면 맨 앞자리에 있는 변수의 값이 됩니다.

/command $1 $2 = /alias $1 $1 $2

결과: /command 1 2 를 입력하면 /alias 1 1 2 를 입력한 것으로 인식한다.

같은 이름의 변수가 왼쪽에 여러개가 있다면 전부 같은 값이 됩니다.

예제 4.

/command $1$2 = /alias $2$1

결과: /command 12 를 입력하면 없는 명령어로 간주된다.

결과: /command $1$2 를 입력하면 /alias $2$1 이 실행된다.

변수를 오른쪽 혹은 왼쪽 둘다 붙여 쓴다면 변수로 인식하지 않고 일반 문자로 인식합니다.

예제 5.

/command $1 asdf = /alias $1

결과: /command 1 asdf 를 입력하면 /alias 1 이 실행된다.

결과: /command 1 asd 를 입력하면 없는 명령어로 간주된다.

변수 뒤에 일반 문자열을 써도 인식합니다.

띄어쓰기를 인식하는 변수(최종 변수)

변수는 기본적으로 변수의 자리를 전부 채워야 하며, 변수의 갯수 이상으로 인수가 늘어나면 명령어가 인식되지 않는 문제가 있습니다. 이를 해결하기 위해 띄어쓰기를 인식하는 최종 변수가 존재합니다.

예제 1.

/command $ = /alias $

결과: /command 를 입력하면 없는 명령어로 간주된다.

결과: /command 1 2 3 4 5 6 7 8 9 10 을 입력하면 /alias 1 2 3 4 5 6 7 8 9 10 이 실행된다.

변수의 이름을 적지 않으면 띄어쓰기를 인식합니다(최종 변수가 됩니다). 하지만 해당 최종 변수의 값이 채워지지 않았다면 없는 명령어로 간주됩니다.

예제 2.

/command $ $ = /alias $ $

결과: /command hello world 를 입력하면 /alias hello world hello world 가 실행된다.

결과: /command 2 를 입력하면 없는 명령어로 간주된다.

최종 변수가 여러개 있을 경우 해당 최종 변수의 자리는 채워져야 하지만(이름이 없는 최종 변수가 2개 있다면 인수가 최소한 두개는 있어야함) 최종 변수의 값은 $ 을 하나만 적었을 때와 같습니다.

예제 3.

/command $name $ = /alias $name $

결과: /command 1 asdf 를 입력하면 /alias 1 asdf 가 실행된다.

최종 변수는 변수와 같이 사용할 수 있습니다.

예제 4.

/command $ $name = /alias $name $

결과: /command 1 asdf 를 입력하면 /alias asdf 1 asdf 가 실행된다.

최종 변수가 변수보다 앞에 있을 경우, 최종 변수는 최종 변수의 자리 이후의 모든 값으로 치환되지만, 일반 변수는 변수가 있는 자리의 값으로만 치환됩니다.

예제 5.

/command $ asdf = /alias $

결과: /command 1 asdf 를 입력하면 /alias 1 asdf 이 실행된다.

결과: /command 1 asd 를 입력하면 없는 명령어로 간주된다.

결과: /command 1 asdf 123123123 를 입력하면 없는 명령어로 간주된다.

결과: /command 1 2 3 asdf 를 입력하면 없는 명령어로 간주된다.

최종 변수 뒤에 일반 문자열을 쓰면 해당 일반 문자열 부분까지 변수 속에 들어가지만, 일반 문자열 부분을 넘어서 인수를 작성하면 인식하지 않습니다.

필수가 아닌 변수

왼쪽 명령어에서 변수를 [] 으로 둘러싸면 해당 값이 존재하지 않아도 단축 명령어를 실행할 수 있습니다.

예제 1.

/command [$1] = /alias $1

결과: /command 를 입력하면 /alias 가 실행되고, /command 1 을 입력하면 /alias 1 이 실행된다.

예제 2.

/command $1 [$2] = /alias $1 $2

결과: /command 1 을 입력하면 /alias 1 이 실행되고, /command 1 2 를 입력하면 /alias 1 2 가 실행된다.

결과: /command 를 입력하면 없는 명령어로 간주된다.

예제 3.

/command [$] = /alias $

결과: /command 를 입력하면 /alias 가 실행되고, /command 1 2 3 을 입력하면 /alias 1 2 3 이 실행된다.

최종 변수에서도 사용할 수 있습니다.

예제 4.

/command [$] [$asdf] = /alias $asdf $

결과: 컴파일 에러, 최종 변수 가 []을 씌운 채로 변수 앞에 있으면 에러.

예제 5.

/command $1 [$2] = /alias [$1] [$2]

결과: /command 1 을 입력하면 /alias 1 이 실행되고, /command 1 2 를 입력하면 /alias 1 2 가 실행된다.

결과: /command 를 입력하면 없는 명령어로 간주된다.

오른쪽의 변수에 [] 을 붙여도 아무 일도 일어나지 않습니다.

변수의 기본값

필수가 아닌 변수일 경우, 변수의 기본값을 지정하여 변수가 정의(입력) 되지 않았을 때 기본으로 변수에 주어지는 값을 [$변수 = '지정할 값'] 으로 지정할 수 있습니다.

즉, 내가 필수가 아닌 변수 [$a] 를 만들었을 때, 그 자리에 아무것도 없을 경우 $a 가 어떻게 변할지 미리 지정하는 것이라고 할 수 있습니다.

아직도 이해가 힘드시다면, 예제를 통해 이해해 보세요.

예제.

/command [$a = 'hello'] = /origin $a

결과: /command 를 입력하면 /origin hello 가 실행되며, /command a 를 입력하면 /origin a 가 실행된다.

/command [$ = 'hello'] = /origin $

결과: /command 를 입력하면 /origin hello 가 실행되며, /command a b 를 입력하면 /origin a b 가 실행된다.

다음 추천 강좌

펑션