사용자:Bd3076/백괴게임 강좌/17강
오랜만에 강좌를 다시 쓰게 되었네요.
앞으로 두 강에 걸쳐 함수에 대해 알아봅시다.
함수란?[편집 | 원본 편집]
지금까지 우리가 배워 온 기술에는 여러 가지 제약이 있습니다.
예를 들어, 우리는 CGI에 1씩 더하는 것을 할 수 없습니다.
함수는 다양한 기능을 가능하게 해 줍니다.
아래는 다룰 함수 목록입니다. 없는 함수는 고급이나 프로그래머 전용에서 다룹니다.
- if
- expr
- ifeq
- ifexpr
- ifexist
- ifanon, ifblocked, ifsysop (전부 권한 관련 함수)
- sub
휴... 많군요. 그럼 시작해 볼까요?
#if[편집 | 원본 편집]
#if 함수는 단순 조건문 함수입니다. 그런데 많이 쓰지 않습니다. 이유는 #ifeq, #ifexist 등에 밀려서...
뭐 어쨌든 어떻게 쓰는 건지 알아봅시다.
{{#if: (변수) | 변수가 비어있지 않을 때 나올 문장 | 변수가 비어있을 때 나올 문장}}
쉽지 않습니다. 조건문이 뭘까요?
우리가 지금까지 문서를 만들면 가능한 경우는 몇 가지였죠? 네, 한 가지입니다. (랜덤 없다는 가정 하에)
그런데 이제 그게 아닙니다. 수백, 수천가지가 될 수도 있는 겁니다. (물론 그렇게 짜려면 다이나믹 로동을 좀 많이 해야죠.)
조건문은 변수의 상태에 따라 어떤 행동을 할지 결정합니다.
그런데 그 행동을 결정하는 조건이 있어야겠죠?
그 조건을 만족하면 참, 아니면 거짓이라고 하는 겁니다.
여기서 조건은 "변수가 비어 있느냐"네요.
if문은 딱히 예제를 들기 힘듭니다. 그래도 하나 들어 보자면:
B
{{#if: |A|B}}
이렇게 공백만 있으면 비어있는 걸로 간주하죠.
아 참, 함수도 틀과 비슷하게 쓰는 것 같죠?
하지만 함수 이름 앞에는 #을 붙여 주어야 해요!
#expr[편집 | 원본 편집]
#expr 함수는 계산을 하는 함수입니다.
그 사용법이 너무 길어 여기 올리면 내용이 방대해지고, 링크를 걸어놓겠습니다.
#ifeq, #ifexpr, #ifexist[편집 | 원본 편집]
이 세 개의 함수는 쉽습니다.
#ifeq 함수: 두 문자열이 같은지 검사합니다.
사용법:
{{#ifeq:(비교할 수 1)|(비교할 수 2)|(같으면 나타낼 문자열)|(다르면 나타낼 문자열)}}
예시: 3
{{#ifeq:2|2|3|5}}
#ifexpr 함수: 계산을 해서 나온 값이 참인지 검사합니다.
(팁: 보통 수가 참인지 아닌지 검사할 때는 0은 거짓, 나머지는 참입니다.)
사용법:
{{#ifexpr:(비교할 계산식, #expr 함수처럼 쓰면 됩니다.)|(참이면 나타낼 문자열)|(거짓이면 나타낼 문자열)}}
예시: 2
{{#ifexpr:3-3|1|2}}
#ifexist 함수: 문서가 존재하는지 확인합니다.
사용법:
{{#ifexist:(문서 이름)|(존재하면 나타낼 문자열)|(존재하지 않으면 나타낼 문자열)}}
예시: 존재하지 않음!
{{#ifexist:게임 오버|존재!|존재하지 않음!}}