WikiDer > Yordam: Shartli iboralar - Vikipediya
![]() | Ushbu yordam sahifasi a qanday qilib ko'rsatma berish. Unda Vikipediya normalari va amaliyotlarining ba'zi jihatlari (lariga) oid jarayonlar yoki protseduralar batafsil bayon etilgan. Bu bittasi emas Vikipediya qoidalari yoki ko'rsatmalari, va o'zgaruvchan darajalarni aks ettirishi mumkin Kelishuv va tekshirish. |
Ushbu sahifa, Yordam: Shartli iboralar, sahifadagi shartlarni tekshirish asosida turli xil natijalarni aks ettirish usullarini tavsiflaydi shablon. The ajralish funktsiyalari baholash uchun ishlatiladi shartli iboralar funktsiya nomlarini o'z ichiga oladi: #ifexpr
, #ifeq
, # almashtirish
, #if
va #ferror
yoki #ifexist
. Har bir funktsiya nomi quyidagi tushuntirishlar bilan bog'langan.
- Foydalanish
#ifeq
2 ta satr yoki sonni taqqoslay oladi. - Ammo
#ifexpr
matematik formulani yoki bir nechta shartlarni tekshirishi mumkin. - The
# almashtirish
funktsiya qiymatiga qarab o'nlab yoki yuzlab turli xil yo'llarga tarmoqlanishi, a funktsiyasini bajarishi mumkin ish bayonoti muqobil variantlardan birini tanlash. - Foydalanish
#if
parametr o'tkazilganligini yoki ifoda rost deb baholanganligini tekshirishi mumkin. - Foydalanish
#ferror
ifoda qiymati xatoni keltirib chiqaradimi yoki yo'qligini tekshirishi mumkin, aks holda qiymat ko'rsatilgan. - Esa
#ifexist
sahifa nomi yoki rasm / media fayli hali mavjudligini tekshirishi mumkin.
Shuni esda tutingki, tashqi qavs ichidagi barcha qo'shimcha bo'shliqlar olib tashlanadi, shuning uchun bu ushbu konstruktsiyalarni yaxshiroq o'qish uchun formatlashga imkon beradi. Masalan:
{{#if: {{{xx |}}} | parametr xx o'tdi | parametr xx chiqarib tashlandi}}
Matnda faqat xx ning ikkala tomonidagi bo'shliqlar paydo bo'ladi.
Shartli ifodalarning qisqacha mazmuni
Har bir funktsiyani tezkor formati quyidagicha (quyidagi funktsiya misollarini ko'rishingiz mumkin):
{{#if: sinov satri | bo'sh bo'lmagan qiymat | bo'sh bo'lsa qiymat }}
(test satri bo'sh yoki yo'qligiga qarab ikkita qiymatdan birini tanlaydi){{#ifeq: mag'lubiyat 1 | mag'lubiyat 2 | teng bo'lsa, qiymat | teng bo'lmagan taqdirda }}
(test satrlari teng yoki yo'qligiga qarab ikkita qiymatdan birini tanlaydi - agar mavjud bo'lsa, son bo'yicha){{#iferror: sinov satri | agar xato bo'lsa qiymati | to'g'ri bo'lsa qiymat }}
(test satri tahlil qiluvchi xatosini keltirib chiqaradimi-yo'qligiga qarab qiymatni tanlaydi){{#ifexpr: ifoda | agar rost bo'lsa, qiymat | false bo'lsa qiymati }}
(ifodani baholash asosida qiymatni tanlaydi){{#ifexist: sahifa sarlavhasi | mavjud bo'lsa qiymat | agar mavjud bo'lmasa }}
(sahifa sarlavhasi mavjudligiga qarab qiymatni tanlaydi){{# almashtirish: sinov | ish1 = 1-holat uchun qiymat | ... | sukut bo'yicha }}
(sinov satrining qiymatiga asoslangan alternativalarni taqdim etadi; qarang sinov holatlari.){{#expr: ifoda }}
(berilgan ifodani baholaydi; qarang Yordam: hisoblash)
The sehrli so'zlar birgalikda, ichki birikmalarda, murakkab sharoitlarda tarmoqlash uchun ishlatilishi mumkin. Ba'zi kombinatsiyalar o'zaro ta'siriga asoslangan fokuslardan foydalanishi mumkin.
Bilan ekanligini unutmang #if
iboralar, a yordamida pozitsion parametr, bu formadagi parametr "{{{1}}}"
har doim finalni talab qiladi vertikal chiziq "|"
parametrda: {{{1|}}}
. Agar satr / quvur tashlab qo'yilgan bo'lsa, unda parametr 1 mavjud bo'lmaganda, maydonni bo'sh qoldirish o'rniga, sahifada so'zma-so'z matn ishlatiladi "{{{1}}}
"(" 1 "atrofidagi jingalak qavslarning 3 to'plami sifatida) va #if
agar parametr 1 "1 =" kabi bo'sh satr sifatida o'tkazilmasa, to'g'ri bo'ladi.
Foydalanish #if
Foydalanish #if
parametr o'tkazilganligini tekshirishi mumkin.
Ushbu funktsiya sinov satrini baholaydi va uning bo'sh yoki yo'qligini aniqlaydi. Faqat bo'sh joyni o'z ichiga olgan sinov satri bo'sh deb hisoblanadi.
:{{#if: sinov satri | test satri bo'sh bo'lmasa qiymat | agar test satri bo'sh bo'lsa (yoki faqat bo'sh joy bo'lsa) }}
Misollar:
{{#if: {{{1|}}} | parametr 1 ma'lumotlarga ega parametr 1 bo'sh yoki o'tkazib yuborilgan}} {{# if: {{{xx |}}} | parametr xx o'tdi | parametr xx bo'sh yoki o'tkazib yuborilgan}} {{# if: {{{xx |}}}{{{yy |}}} | xx va / yoki yy o'tgan | ikkala xx ham, yy ham bo'sh / tashlangan}}
Foydalanish #ifeq
Foydalanish #ifeq
2 bilan taqqoslash mumkin torlar yoki raqamlar (lekin unday emas) raqamli ifodalar: 1 + 1). Tahlilchi funktsiyasi #ifeq
ikkita qiymatni taqqoslaydi va ularning bir xilligini aniqlaydi.
:{{#ifeq: mag'lubiyat 1 | mag'lubiyat 2 | bir xil bo'lsa, qiymat | qiymati boshqacha bo'lsa }}
Agar ikkala satr ham raqamli qiymatlar bo'lsa, satrlar to'g'ridan-to'g'ri matn o'rniga raqamlar bilan taqqoslanadi:
{{#ifeq: 01 | 1 | teng | teng emas}}
→ teng{{#ifeq: x01 | x1 | teng | teng emas}}
→ teng emas{{#ifeq: 2.000 | 002 | teng | teng emas}}
→ teng{{#ifeq: 2.5 | 2 + .5 | teng | teng emas}}
→ teng emas (foydalanish#ifexpr
arifmetik uchun)
{{#ifeq: {{#expr: 10 ^ 3}} | 1000 | teng | teng emas}}
→ teng
Taqqoslash harflar katta-kichikligiga sezgir, katta harflarga mos kelishini tekshirish:
{{#ifeq: Qirol | qirol | teng | teng emas}}
→ teng emas{{#ifeq: {{lc: TopCat}} | topcat | teng | teng emas}}
→ teng{{#ifeq: {{lc: {{{catname}}}}} | topcat | teng | teng emas}}
Shunday qilib, "nomli parametr qiymatini tekshirishda{{{catname}}}
"keyin funktsiya {{lc: ___}}
taqqoslash paytida bir zumda kichik matnga aylantirish uchun ishlatilishi mumkin. Ning qiymati {{{catname}}}
keyinchalik foydalanish uchun o'zgartirilmaydi, aksincha u faqat kichik harflar bilan taqqoslanadi.
{{#ifeq: {{{n}}} | 1 | birlik | ko'plik}}
→ ko'plik (Ko'pgina tillarda, shu jumladan ingliz tilida, {{Ko'plik| lang = xx | {{{n}}} | yakka | ko‘plik }} to'liq teng).
Foydalanish #ifexpr
Foydalanish #ifexpr
matematik formulani yoki bir nechta shartlarni tekshirishi mumkin #ifexpr
baholaydi a matematik ifoda yoki mantiqiy ifoda va natijalarning mantiqiy haqiqiy / noto'g'ri qiymatiga qarab filiallar (bu erda nol degani) yolg'on):
:{{#ifexpr: ifoda | rost bo'lsa qiymat | false bo'lsa qiymati }}
Misollar:
{{#ifexpr: ({{{1}}} + {{{{2}}}) * 2.63> 45 | 45 | 45 dan yuqori | 45 dan yuqori emas}}
{{#ifexpr: {{{1}}}> 0 va {{{1}}} <1.0 yoki {{#ifeq: {{{decimal}}} | ha}} | kasrli | kasrli emas}}
The ifoda
natija funktsiyasi bilan bir xil tarzda aniq baholanadi #expr
, xuddi shu operatorlar mavjud bo'lganda. Chiqish mantiqiy ifoda sifatida baholanadi.
Bo'sh kirish ifodasi noto'g'ri qiymatiga baho beradi:
{{#ifexpr: | ha | yo'q}}
→ yo'q
Yuqorida aytib o'tganimizdek, nol "false" ga, nolga teng bo'lmagan qiymat (masalan, 6,7) "true" ga baho beradi.
Noto'g'ri ma'lumotlar xato haqida xabar beradi. Biroq, funktsiya #ifexpr
foydalanish bilan tengdir #ifeq
bilan #expr
ichida, lekin true / false (then / else) bandlarini aylantirish:
{{#ifeq: {{#expr: ifoda }} | 0 | false bo'lsa qiymati | rost bo'lsa qiymat }}
Noto'g'ri yoki noto'g'ri kiritilgan ifoda haqiqiy qiymat qismini ishga tushiradi (xato xabari oddiy satr sifatida ko'rib chiqiladi; u nolga teng emas, shuning uchun biz olamiz false bo'lsa qiymati
).
{{#ifexpr: = | ha | yo'q}}
→ Ifoda xatosi: Kutilmagan = operator{{#ifeq: {{#expr: =}} | 0 | ha | yo'q}}
→ yo'q
Qaytish qiymatlaridan biri yoki ikkalasi ham o'tkazib yuborilishi mumkin; tegishli filial bo'sh qoldirilganda hech qanday chiqish berilmaydi:
{{#ifexpr: 1> 0 | ha}}
→ ha{{#ifexpr: 0 = 0 | ha}}
→ ha{{#ifexpr: 1> 0 | | yo'q}}
→
Maslahat Sana asosida taqqoslashni tekshirish uchun (agar joriy sana va vaqt boshqa sana va vaqtdan keyin bo'lsa), avval funksiyani ishlatib, vaqtni 1970 yil 1 yanvardan keyin soniyalar soniga o'tkazing. {{# vaqt: U}}, keyin shunchaki sanalarni qo'shing va olib tashlang. |
Foydalanish # almashtirish
The # almashtirish
funktsiya qiymatiga qarab o'nlab yoki yuzlab turli xil yo'llarga bo'linishi mumkin ish bayonoti muqobil variantlardan qaysi birini tanlaydi. A # almashtirish
ifoda - bu parametr uchun bir nechta kod qiymatlarini boshqarishning tezkor usuli #if
funktsiyalar; ammo, 100 dan ortiq shoxchalar ishlashi sekinlashadi va umumiy qiymatlar tanlovlar orasida yuqoriroq bo'lishi kerak, 3x-8x tezroq ishlaydi. Kamdan kam hollarda, a # almashtirish
ikki mingdan ortiq filialga ega bo'lishi mumkin edi, lekin qiymatlarni taqqoslashdan oldin ham barcha filiallarni skanerlash uchun vaqt kerak.
The # almashtirish funktsiya bitta qatorli shakl bo'lishi mumkin:
{{# almashtirish: {{{x}}} | 1 = bitta | 2 = ikkita | 3 | 4 | 5 = 3-5 oralig'i | boshqa}}
Bu bitta satr # almashtirish ning qiymatini o'qiydi {{{x}}}. 1 qiymati uchun u "bitta" ni qaytaradi. Agar 2 qiymati bo'lsa, u "ikki" ga qaytadi. 3, 4 yoki 5 qiymatlari uchun u "3-5 oralig'ida" qaytadi. Boshqa har qanday qiymat yoki nol qiymat uchun u "boshqasini" qaytaradi.
Biroq, ko'p hollarda # almashtirish funktsiya ko'p satrli shakl bo'lib, har bir filial boshqa satrda joylashgan bo'lib, quyidagicha:
{{# almashtirish: {{{x}}} | 1 = bitta | 2 = ikkita | #default = other | 3 | 4 | 5 = har qanday 3-5 | {{#expr: 2 * 3}} = olti | {{#expr: 2 * 3 + 1}} = {{lc: SEVEN}} <!--ko'rsatuv ->}}
Bu sukut bo'yicha ishni ko'rsatishning muqobil usulini ko'rsatadi, u birinchi, oxirgi yoki biron bir joyda paydo bo'lishi mumkin.
Agar biron bir sukut belgilanmasa va berilgan qiymatga hech qanday holat mos kelmasa, nol qiymat qaytariladi.
A ning har bir filiali uchun # almashtirish, "=" tenglik belgisining har ikki tomoni oddiy qiymat, ifoda yoki shablon qo'ng'irog'i bo'lishi mumkin.
Qarang: Yordam: tahlil qiluvchi funktsiyasini almashtirish, to'liq tavsif va misollar uchun.
Foydalanish #ferror
Foydalanish #ferror
ifoda qiymati xatoni qo'zg'atadimi-yo'qligini tekshirishi mumkin, keyin bu shart uchun biror narsa qilish kerak, aks holda u sinovdan o'tgan qiymatni ko'rsatadi.
Ushbu funktsiya kirish satrini oladi va ikkita natijadan birini qaytaradi; funktsiyani baholaydi to'g'ri
agar kirish qatorida HTML ob'ekti bo'lsa class = "xato"
, shablon looplar va rekursiyalar kabi xatolar va boshqa "failsoft" tahlilchi xatolar:
{{#iferror: sinov satri | agar xato bo'lsa qiymati | to'g'ri bo'lsa qiymat }}
(test satri tahlil qiluvchi xatosini keltirib chiqaradimi-yo'qligiga qarab qiymatni tanlaydi).
Qaytish satrlaridan bittasi yoki ikkalasi qoldirilishi mumkin. To'g'ri mag'lubiyat chiqarib tashlangan bo'lsa, xato satr bo'lmasa, sinov satri qaytariladi. Agar xato satri ham chiqarib tashlansa, bo'sh satr xatoga qaytariladi:
{{#iferror: {{#expr: 1 + 2}} | xato | to'g'ri}}
→ to'g'ri{{#iferror: {{#expr: 1 + X}} | xato | to'g'ri}}
→ xato{{#iferror: {{#expr: 1 + 2}} | xato}}
→ 3{{#iferror: {{#expr: 1 + X}} | xato}}
→ xato{{#iferror: {{#expr: 1 + 2}}}}
→ 3{{#iferror: {{#expr: 1 + X}}}}
→ {{#iferror: {{#expr:. }} | xato | to'g'ri}}
→ to'g'ri{{#iferror: a | xato | to'g'ri}}
→ xato
Foydalanish #ifexist
Funktsiya #ifexist
sahifa nomi yoki rasm / media fayli hali mavjudligini tekshirishi mumkin. Bu juda tez, lekin har bir sahifada 500 ta misol bilan cheklangan.
{{#ifexist: sahifa sarlavhasi | mavjud bo'lsa qiymat | agar mavjud bo'lmasa }}
(sahifa sarlavhasi mavjudligiga qarab qiymatni tanlaydi)
Funktsiya quyidagicha baholanadi to'g'ri
agar sahifa mavjud bo'lsa, tarkibidan qat'i nazar, bo'sh (tarkibdagi havolalar yoki kabi meta-ma'lumotlarni o'z ichiga oladi) sehrli so'zlar, lekin ko'rinadigan tarkib yo'q), bo'sh yoki a yo'naltirish. Faqatgina qayta bog'langan sahifalar baholanadi yolg'on
shu jumladan sahifa mavjud bo'lgan, ammo o'chirilgan bo'lsa.
Foydalanish #expr
Foydalanish #expr
matematik yoki mantiqiy ifodani baholash, taqqoslashni ko'paytirish va xato xabarlarini boshqarish.
{{#expr: ifoda }}
Misollar:
{{#expr: ({{{1}}} + {{{xshift}}} - 6) * 18.4}}
{{#expr: ln (7) ^ 3 - abs (-0.344) + qavat (5/3) 3-tur}}
{{#expr: {{{n}}}> 0 va {{{n}}} <1.0}}
Shablonlar uchun shartli shartlar
Shablon parametrini (masalan, {{{1}}}) bir tomondan aniqlangan va bo'sh bo'lmagan, yoki boshqa tomondan aniqlanmagan yoki bo'sh bo'lgan parametrlarni farqlash uchun #if: ni bo'sh sukut bilan ishlating:
{{#if: {{{param |}}} | param aniqlangan va bo'sh bo'lmagan | param aniqlanmagan yoki bo'sh}}.
Belgilangan (va ehtimol bo'sh) va aniqlanmaganlarni farqlash uchun quyidagilarni ishlating:
{{#ifeq: {{{param | +}}} | {{{param | -}}} | param aniqlangan | param aniqlanmagan}}.
Shuningdek qarang
- Yordam: Shartli jadvallar
- mw: Yordam: Kengaytma: ParserFunctions, MediaWiki.org saytida ko'proq va ko'proq texnik yordam sahifasi
- Shartli (kompyuter dasturlash)
- Relyatsion operator
- Yordam: Andoza va Vikipediya: Shablonning sandboxi va sinov holatlari
- m: Yordam: Kengaytirilgan shablonlar
- Kategoriya: If-then-else shablonlari
- {{Tengsiz}}