Dart tiliga kirish O'zgaruvchilar va konstantalar Primitiv ma'lumotlar turlari
Download 374.15 Kb.
|
3-mustaqil ish
Operatorlarni bekor qilish
Dart bizga bir qator o'rnatilgan operatorlarning xatti-harakatlarini o'zgartirishga imkon beradi, bu bizga ob'ektlar bilan ishlashning qo'shimcha imkoniyatlaridan foydalanish imkonini beradi. Masalan, bizda quyidagi Counter klassi bor deylik:
Bu sinf ba'zi hisoblagichni ifodalaydi, uning qiymati qiymat maydonida saqlanadi. Aytaylik, bizda Counter sinfining ikkita ob'ekti bor - standart taqqoslash va qo'shish operatsiyalari yordamida qiymat maydoniga qarab solishtirmoqchi yoki qo'shmoqchi bo'lgan ikkita hisoblagich:
Lekin sukut bo'yicha Counter ob'ektlari uchun solishtirish ham, qo'shish ham mavjud emas. Ushbu operatsiyalar int kabi ibtidoiy turdagi ob'ektlar bilan ishlatilishi mumkin. Ammo Dart ishlab chiquvchi tomonidan belgilangan sinflar ob'ektlarini qanday qo'shishni bilmaydi. Buning uchun esa tegishli operatorlarni qayta belgilashimiz kerak. Operatorlarni bekor qilish sinfdagi maxsus usulni aniqlashdan iborat bo'lib, biz operatorni aniqlamoqchi bo'lgan ob'ektlar uchun:
Qaytish turi biz ob'ektlarni olishni istagan turni ifodalaydi. Masalan, ikkita Counter ob'ektini qo'shish natijasida biz yangi Counter ob'ektini olishni kutamiz. Va ikkalasini solishtirish natijasida biz bool tipidagi ob'ektni olishni xohlaymiz, bu shartli ifodaning to'g'ri yoki noto'g'ri ekanligini ko'rsatadi. Ammo vazifaga qarab, qaytarish turlari har qanday bo'lishi mumkin. Keyin usul nomi o'rniga operator kalit so'zi va operatorning o'zi mavjud. Va keyin parametr qavs ichida ko'rsatilgan. Masalan, Counter klassi uchun qo'shish operatorini ortiqcha yuklaymiz:
qo'shish amalida biz Counter sinfining ikkita ob'ektini qo'shmoqchimiz, keyin operator ushbu sinf ob'ektini parametr sifatida oladi. Va biz qo'shish natijasida yangi Counter ob'ektini olishni xohlayotganimiz sababli, bu sinf qaytish turi sifatida ham ishlatiladi. Ushbu operatorning barcha harakatlari yangi ob'ektni yaratishga qisqartiriladi, uning qiymat maydoni ikkala ob'ektning qiymat maydonining qiymatlarini birlashtiradi. Shuni ta'kidlash kerakki, biz barcha Dart operatorlarini bekor qila olmaymiz, lekin ulardan faqat ba'zilari, xususan: <+ | []> / ^ [] = <= ~ / & ~> = * << == -% >>
Masalan, biz Counter sinfi uchun> va Yuqoridagi misollarda bir xil turdagi ob'ekt hisoblagich parametr sifatida berilgan bo'lsa-da, bu ixtiyoriy, bizning vazifamizga qarab, parametr har qanday turni ifodalashi mumkin. Masalan, kodni quyidagicha o'zgartiramiz: Qo'shish operatori endi Counter ob'ekti va oddiy raqamni qo'shish imkonini beradi va yangi Counter ob'ektini qaytaradi. Va ayirish operatori Hisoblagichdan raqamni ayirish imkonini beradi va boshqasini qaytaradi - qiymat maydoni va ayirilgan raqam o'rtasidagi farq. Download 374.15 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling