Web Analytics Made Easy - Statcounter
Privacy Policy Cookie Policy Terms and Conditions 위키백과:특수 함수 - 위키백과

위키백과:특수 함수

위키백과 ― 우리 모두의 백과사전.

m:ParserFunctions에서 더 자세한 정보를 얻을 수 있습니다.

미디어위키 확장 기능 중에는 간단한 계산과 조건문을 할 수 있는 함수가 있습니다.

목차

[편집] 함수

[편집] #expr

#expr은 간단한 계산을 할 수 있는 기능으로, 다음과 같이 사용합니다.

{{#expr: 계산식 }}
연산자 기능 예제
- {{#expr: 123456789012345}} = 1.2345678901234E+14
{{#expr: 0.000001}} = 1E-06
( ) 괄호 {{#expr: (30 + 7) * 7 }} = 259
+ 양수 부호 {{#expr: +30 * +7}} = 210
- 음수 부호 {{#expr: -30 * -7}} = 210
not 부정문 {{#expr: not 0 * 7}} = 7
{{#expr: not 30+7}} = 7
* 곱셈 {{#expr: 30 * 7}} = 210
/ 나눗셈 {{#expr: 30 / 7}} = 4.2857142857143
div 나눗셈. /과 같음 {{#expr: 30 div 7}} = 4.2857142857143
{{#expr: 5 div 2 * 2 + 5 mod 2}} = 6
mod 정수 나눗셈을 한 나머지를 구합니다.

주의: 다른 프로그래밍 언어와 작동 방식이 다릅니다.

{{#expr: 30 mod 7}} = 2
{{#expr: -8 mod -3}} = -2
{{#expr: -8 mod +3}} = -2
{{#expr: 8 mod 2.7}} = 0
{{#expr: 8 mod 3.2}} = 2
{{#expr: 8.9 mod 3}} = 2
+ 덧셈 {{#expr: 30 + 7}} = 37
- 뺄셈 {{#expr: 30 - 7}} = 23
round 반올림 계산을 합니다. {{#expr: 30 / 7 round 3}} = 4.286
{{#expr: 30 / 7 round 0}} = 4
{{#expr: 3456 round -2}} = 3500
= 등호 {{#expr: 30 = 7}} = 0
<> 부등호. 다를 경우에 true=1, 같을 경우에 false=0이 나옵니다. {{#expr: 30 <> 7}} = 1
!= 부등호. <>와 같습니다. {{#expr: 1 != 0}} = 1
< 작다 {{#expr: 30 < 7}} = 0
> 크다 {{#expr: 30 > 7}} = 1
<= 작거나 같다 {{#expr: 30 <= 7}} = 0
>= 크거나 같다 {{#expr: 30 >= 7}} = 1
and Logical AND {{#expr: 4<5 and 4 mod 2}} = 0
or Logical OR {{#expr: 4<5 or 4 mod 2}} = 1

입력할 때에 0이 false, 나머지의 값이 true로 처리됩니다. 계산 결과로는 false가 0, true가 1로 나옵니다.

[편집] #if

#if는 조건문의 하나로, 다음과 같이 사용합니다.

{{#if: 조건 | 조건이 참이면 나올 문장 | 조건이 거짓이면 나올 문장}}

이때 조건 문자열이 비어 있지 않을 때 참, 비어 있을 때 거짓을 반환합니다. 거짓일때 나올 문장은 생략할 수 있습니다.

예를 들면 다음과 같은 조건문이 있을 때:

{{#if: {{{parameter|}}} | parameter는 {{{parameter}}}입니다. | parameter가 없습니다.}}

{{틀|parameter=aaa}}의 결과는 다음과 같습니다.

parameter는 aaa입니다.

{{틀}}의 결과는 다음과 같습니다.

parameter가 없습니다.

{{틀|parameter=}}의 결과는 다음과 같습니다.

parameter가 없습니다.

주의해야 할 점은, 이것은 기존의 {{{parameter|}}} 동작과 다릅니다. 다음의 두 작동을 비교해 보세요.

{{{parameter|없음}}} {{#if: {{{parameter|}}} | {{{parameter}}} | 없음}}
{{틀|parameter=a}} a a
{{틀}} 없음 없음
{{틀|parameter=}} 없음

또한, 조건이 참/거짓일 때 나오는 문장에는 자동으로 앞뒤로 빈 문자열이 삭제됩니다.

[편집] #ifeq

{{#ifeq: 문자열 1 | 문자열 2 | 같을 경우 | 다를 경우}}
  • {{#ifeq: aa | aa | same | different}} -> same

문자열 부분에 숫자가 들어오면 숫자 값으로 검사합니다.

  • {{ #ifeq: +07 | 007 | 1 | 0 }} -> 1
  • {{ #ifeq: "+07" | "007" | 1 | 0 }} -> 0

매개변수가 정의되었는지를 #if로는 검사할 수 없습니다. 이를 검사하려면 #ifeq문을 사용해야 합니다.

  • {{ #if: {{{x| }}}|not blank|blank}} = blank
  • {{ #ifeq: {{{x| }}}| |blank|not blank}} = blank
  • {{ #ifeq: {{{x| }}}|{{{x|u}}}|defined|undefined}} = undefined

[편집] #ifexist

{{#ifeq: 문서 이름 | 문서가 있을 경우 | 문서가 없을 경우}}

만약 문서 이름에 인터위키를 넣으면 결과는 항상 문서가 없는 경우로 나옵니다.

[편집] #ifexpr

{{#ifeq: 계산식 | true일 경우 | false일 경우}}

계산식이 빈 문자열일 때도 false가 나옵니다.

  • {{#ifexpr: {{ns:0}}|Toast|'''or else'''}} = or else

true, false 두 문장을 쓰지 않으면 아무 것도 출력되지 않습니다. 단, 오류가 있을 경우에는 오류 메시지가 출력됩니다. 이를 이용해서 수식에 오류가 있는지 없는지 확인하는 것도 가능합니다.

  • {{#ifexpr: 1/0}} -> Division by zero
  • {{#if: {{#ifexpr: 1/0}} | 오류 있음 | 오류 없음}} -> 오류 있음

[편집] #switch

다른 프로그래밍 언어의 switch문과 비슷한 구조를 가지고 있습니다.

{{ #switch: 비교할 값
| <value1> = <result1>
| <value2> = <result2>
| ...
| <valuen> = <resultn>
| <default result>
}}

마지막 default값은 모든 비교가 실패했을 때의 값으로, 항상 있어야 합니다. 만약 default 값에 등호가 들어간다면, #default = <값>를 사용할 수 있습니다.

[편집] 주의 사항

일반적인 틀과의 작동 방식이 다르다는 것을 주의해야 합니다. 예를 들어서, 이 함수들은 자동적으로 매개변수의 앞뒤 공백을 삭제하고, 이로 인해 원하는 결과와 다른 결과가 나올 수 있습니다.

만약 표에서 새로운 칸 하나를 만들어 주는 틀의 내용이 다음과 같다고 할 때:

|-
| 칸

이 틀을 다음과 같이 사용할 수 있습니다.

{|
{{틀}}
{{틀}}
{{틀}}
{{틀}}
|}

이때 결과는 다음과 같습니다.

이때 두번째와 세번째에 #if 구문을 사용한다면:

{|
{{틀}}
{{#if:조건|{{틀}}}}
{{#if:조건|{{틀}}}}
{{틀}}
|}

이 되고, 이때 조건이 모두 참이면 앞과 같은 결과가 나옵니다. 하지만 조건이 모두 거짓이면 다음과 같이 됩니다.

{|
{{틀}}


{{틀}}
|}

결과는 다음과 같습니다.


이를 방지하기 위해, 틀을 사용한 표에서는 다음과 같이 사용해 왔습니다.

{|
{{틀}}{{조건 틀|
{{틀}}}}{{조건 틀|
{{틀}}}}
{{틀}}
|}

이것에 조건이 모두 참일 때는:

{|
{{틀}}
{{틀}}
{{틀}}
{{틀}}
|}

모두 거짓일 때는:

{|
{{틀}}
{{틀}}
|}

로, 모두 정상작동합니다. 하지만 #if에서는:

{|
{{틀}}{{#if:조건|
{{틀}}}}{{#if:조건|
{{틀}}}}
{{틀}}
|}

이 다음과 같이 됩니다.

{|
{{틀}}{{틀}}{{틀}}
{{틀}}
|}

따라서 표의 모양이 망가지게 됩니다.

이 문제를 해결하는 방법은 몇 가지가 있습니다.

  • <nowiki/>나 {{ns:0}}과 같이 ‘빈 문자열’을 나타내는 문법으로 문자열의 앞뒤를 정해 줄 수 있습니다. 다만 표에서는 첫 글자에 |가 와야 의미를 가지기 때문에 사용할 수 없습니다.
  • html 태그를 직접 쓰면 공백에 상관 없이 표 문법을 구현할 수 있습니다. 다만 다소 불편합니다.
  • 표 문법의 경우 ‘|-’를 중복해서 쓸 수 있기 때문에 문제를 회피할 방법이 있습니다. 틀:생물 분류를 참고하십시오.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu