Nomlangan parametr - Named parameter

Yilda kompyuter dasturlash, nomlangan parametrlar, deb nomlangan argument yoki kalit so'z argumentlari har birining nomini aniq ko'rsatadigan funktsional qo'ng'iroqlarni kompyuter tilining qo'llab-quvvatlashiga murojaat qiling parametr funktsiya chaqiruvi ichida.

Umumiy nuqtai

Nomlangan parametrlardan foydalangan holda funktsiya chaqiruvi odatdagi funktsiya chaqiruvidan farq qiladi, chunki qiymatlar tartiblangan qiymatlar ro'yxatini taqdim etish o'rniga har biri parametr nomi bilan bog'lab yuboriladi.

Masalan, buni ko'rib chiqing Java nomlangan parametrlardan foydalanmasdan usul chaqiruvi:

oyna.addNewControl("Sarlavha", 20, 50, 100, 50, to'g'ri);

Nomlangan parametrlardan foydalanish Python, qo'ng'iroq quyidagicha yozilishi mumkin:

oyna.addNewControl(sarlavha="Sarlavha",                     xPosition=20,                     yPosition=50,                     kengligi=100,                     balandlik=50,                     Endi chizish=To'g'ri)

Java versiyasi ko'proq yashirin. Python versiyasi aniqroq. Ma'lum bir misolga qarab, dasturchi o'qish uchun birini yoki boshqasini osonlashtirishi mumkin.

Dasturlash tillarida foydalaning

Nomlangan parametrlar ko'plab tillarda aniq qo'llab-quvvatlanadi. Namunalarning to'liq bo'lmagan tanloviga quyidagilar kiradi Ada, C # 4.0+, Seylon, ColdFusion Markup tili (CFML), Umumiy Lisp, Fortran, IDL, Kotlin, Matematik, PL / SQL, PowerShell, Python, R, Yoqut, Scala, Kichik munozarasi, Tez[1] va Visual Basic. Yozib oling Maqsad-C nomlangan parametrlarga ega emas (garchi usul nomining qismlari nomlangan parametrlarga o'xshash bo'lsa ham).[2]

Parametrlar tartibi

Parametrlari noma'lum bo'lgan tillarda buyurtma funktsiya chaqiruvidagi parametrlar aniq belgilanadi, chunki bu til qaysi qiymatni qaysi maqsadda ishlatilishini aniqlay oladigan yagona usul.

Nomlangan parametrlar bilan, odatda, qiymatlarni har qanday o'zboshimchalik tartibida ta'minlash mumkin, chunki har bir qiymatga biriktirilgan nom uning maqsadini belgilaydi. Bu kamaytiradi uyg'unlik dastur qismlari o'rtasida. Bir nechta til nomlangan parametrlardan foydalanadi, lekin baribir parametrlarni ma'lum bir tartibda taqdim etishni talab qiladi.

Ixtiyoriy parametrlar va pozitsion parametrlar

Nomlangan parametrlar ko'pincha ixtiyoriy parametrlar bilan birgalikda qo'llaniladi. Nomlangan parametrlarsiz, ixtiyoriy parametrlar faqat parametrlar ro'yxati oxirida paydo bo'lishi mumkin, chunki qaysi qiymatlar o'tkazib yuborilganligini aniqlashning boshqa usuli yo'q. Biroq, nomlangan ixtiyoriy parametrlarni qo'llab-quvvatlaydigan tillarda dasturlar mavjud parametrlarning istalgan to'plamini taqdim etishi mumkin va nomlar qaysi qiymatlar berilganligini aniqlash uchun ishlatiladi.

Kabi tillarda qo'shimcha murakkablik paydo bo'ladi OCaml ikkala ixtiyoriy nomlangan parametrlarni va qisman dastur. Umuman olganda qisman qo'llaniladigan funktsiya va parametrlarning quyi to'plami berilgan funktsiya o'rtasida farqlash mumkin emas. OCaml ushbu noaniqlikni barcha ixtiyoriy nomlangan parametrlardan keyin pozitsion parametrni talab qilish bilan hal qiladi: uning mavjudligi yoki yo'qligi funktsiya to'liq yoki qisman qo'llanilganligini aniqlash uchun ishlatiladi. Agar barcha parametrlar ixtiyoriy bo'lsa, amalga oshiruvchi muammoni turdagi qo'g'irchoq pozitsion parametrni qo'shish orqali hal qilishi mumkin birlik.

Yilda MediaWiki, kodlar (o'zgaruvchilar) {{{1}}}, {{{2}}} andozalarda va hokazolarda birinchi, ikkinchi va boshqalar bilan almashtiriladi noma'lum parametr (yoki nomlangan parametr qiymati 1, 2, va boshqalar.); ular sifatida tanilgan pozitsion parametrs.

Taqlid qilish

Parametrlari bo'lmagan tillarda ba'zi bir xil afzalliklarga boshqa yo'llar bilan erishish mumkin.

Hujjatlar bilan

Hujjat sifatida ularning qiymati ko'rsatmalar tomonidan takrorlanishi mumkin birlashgan rivojlanish muhiti (IDE) kabi tillar uchun Java, yoki sharhlar bilan (ichida C ):

MyFunctionCall(    20,  / * x koordinatasi * /    50,  / * y koordinatasi * /    100, / * kenglik * /    5,   / * balandligi * /    Rost / * hozir rasm chizyapsizmi? * /);

Ammo bu tekshirishni ta'minlamaydi va tortishuvlarning tartibi muhim bo'lib qolmoqda.

Ma'lumotlar tuzilmalari bilan

Argumentlar tartibini cheklashni olib tashlash va ba'zi bir qadriyatlarni belgilanmagan holda qoldirish qobiliyatiga a o'tish orqali erishish mumkin yozuv yoki assotsiativ qator.

Masalan, ichida JavaScript, ushbu ikkita qo'ng'iroq tengdir:

MyFunctionCall({ xPosition: 20, yPosition: 50, kengligi: 100, balandlik: 5,                 Endi chizish: to'g'ri });
MyFunctionCall({ kengligi: 100, balandlik: 5, xPosition: 20, yPosition: 50,                 Endi chizish: to'g'ri });

C99 bilan taqqoslang:[3]

tuzilmaviy MyParam {    int xPosition;    int yPosition;    int kengligi;    int balandlik;    imzosiz char Endi chizish;};MyParam parametrlar = { .xPosition = 20, .yPosition = 50,        .kengligi = 100, .balandlik = 5, .Endi chizish  = Rost };MyFunctionCall(&parametrlar);

Maxsus qo'llab-quvvatlash

Yilda Perl va 2.0gacha Yoqut shunga o'xshash anjuman mavjud (odatda a deb nomlanadi xash yoki imkoniyatlari xash[4]), funktsiya qo'ng'iroqlari chegaralarini ajratib qo'yish uchun maxsus yordam bilan. Masalan, asosiy modulning Net :: FTP yangi funktsiya ixtiyoriy argumentlarning xashini qabul qiladi.[5].

Zanjirli usul qo'ng'iroqlari bilan

Yilda ob'ektga yo'naltirilgan dasturlash tillardan foydalanish mumkin usul zanjiri formasi sifatida nomlangan parametrlarni simulyatsiya qilish ravon interfeys. Har bir nomlangan parametr ob'ektni o'zgartiradigan va keyin qaytaradigan parametr ob'ekti bo'yicha usul bilan almashtiriladi. C ++ da bu "." Deb nomlanadi parametr iborasi.[6] Keyinchalik ob'ekt o'z ichiga olgan parametrlardan foydalanadigan funktsiyaga o'tkazilishi mumkin.

Zanjirli usul bilan ko'pincha ishlatiladi quruvchi naqsh quruvchi sinfi tomonidan taqdim etilgan standart qiymatlarni bekor qilish usuli sifatida.

Shuningdek qarang

Adabiyotlar

  1. ^ "Funksiyalar - Tez dasturlash tili (5.1). docs.swift.org. Olingan 2020-01-27.
  2. ^ Ishlab chiquvchilar kutubxonasi - sinfni amalga oshirish uning ichki harakatlarini ta'minlaydi
  3. ^ https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
  4. ^ Dasturlash Perl 2.9: Xashlar
  5. ^ Perl yadro moduli Net :: FTP
  6. ^ C ++ savollari, 10.20 "Nomlangan parametr iborasi" nima?

Tashqi havolalar