O’zbekiston aloqa va axborotlashtirish agentligi
Download 0.58 Mb. Pdf ko'rish
|
ruby dasturlash tili asoslari
y = false
z = true x = y or z # operator = or dan ertaroq bajariladi. puts x # pechatlanadi false (x = y) or z # 5 jumla : yuqorigiday
53 x = (y or z) # or operator boshidan hisoblaydi. puts x # pechatlanadi true. Ob’ekt atributlarni o’zgaruvchi lokal bilan adashtirmang. Agar siz C+ + yoki javaga o’rganib qolgan bo’lsangiz,bu haqda esingizdan chiqaring. a) my-var o’zgaruvchi sinf matnida bu ekzimplyar o’zgaruvchisi (yoki atribut) ammo my_var shu matnda – lokal o’zgaruvchi. - Ko’pchilik tillarda, Ruby da ham “bor” sikli bor. Indeks o’zgaruvchisini modifikatsiyalantirish mumkinmi degan savol tug’iladi. Ba’zi tillarda bu boshqaruv o’zgaruvchisini qat’iy o’zgartirish man etiladi (ish bajarilishi vaqtida yoki kampilatsiya pog’onasida (davrida) xato bo’lgani haqida ogohlantiruvchi ma’lumot kiritiladi). Boshqalarda bu holatga ruxsat beriladi, siklni o’zgarishiga qaramay. Rubyda uchinchi yondashuv bor. for o’zgaruvchan,boshqaruv sikli, oddiy o’zgaruvchi deb hisoblanadi,istagan vaqtda o’zgartirish mumkin, bu o’zgarish sikliga ta’sir qilmaydi. for sikli bu o’zgaruvchilarni o’ziga qabul qiladi.
Masalan: keying sikl 10 marta bajariladi va 1dan 10gacha sonlarni pechatlaydi. for var in 1…10 puts “ var=# {var} ” if var>5 var=var+2 end end
- O’zgaruvchilar nomlarini usul nomlaridan ajratish oson emas. Buni analizator bajaradi,agar idintifikatorga uni ishlatish oldidan ma’noni o’zlashtirishini analizator ko’rsa bu holda u o’zgaruvchi hisoblanadi. ------------------ 54
Ruby zid bo’lmagan til qilib loyihalashtirildi. Lekin u shu bilan birga murakkab til, o’zining ideomalari bilan. - alias kalit so’zi yordamida o’zgaruvchi va usullarga alternativ nomlar (sinonimlar) berish mumkin. - $ 1, $ 2, $ 3 va boshqa nomerlangan global o’zgaruvchilar sinonimga ega bo’lolmaydi. $ =,$_,$| ga o’xshash “maxsus o’zgaruvchilarni” ishlatishga maslahat bermaymiz. Ba’zida ular kompakt kod yozishga ruxsat beradi, ammo tushunarsiz bo’lib keladi. - Diapazon operatorini adashtirmang, birinchisi yuqori chegarani yoqadi, ikkinchisi - yo’q. 5…10 diapazon sonni yoqadi, 5…10 – diapazoni yo’q. - Agar m…n diapazon berilsa, end usuli n oxirgi nuqtasini qaytaradi, uning last sinonimiday. Bunday usullar n ma’noni m…n diapazoniga qaytaradi. Bu ikki vaziyatni farqlash uchun end_excluded ? usuli beriladi. - Diapazonlarni massivlar bilan adashtirmang, ular har xildir :
Biroq qulay to a usuli massivda diapazoni o’zgartirish uchun bor. - nil ma’nosi “o’zlashtirilmagan” o’zgaruvchisida bo’lib, bu masala shunday echiladi : x = x||5 yoki qisqartirilib X||=5. false ma’nosi va nil ma’nosi qayta yoziladi. - Ko’pchilik tillarda ikki o’zgaruvchining ma’nosini (значение) 55 o’zgartirish uchun qo’shimcha vaqtinchali o’zgaruvchi kerak. Rubyda ko’p o’zlashtirish mexanizmi unga ortiqchalik qiladi : x, y = y,x ifoda x va y ma’noni almashtiradi. - Nusxani (ekzemplyarni) sinfdan aniq operating. Masalan @@ foobar o’zgaruvchi butun sinf ko’rinadi, @ foobar o’zgaruvchi nusxada har bir sinf ob’ektiga qayta yaratiladi. - Sinf usuli aniqlangan sinf bilan o’xshash, u hech qanday aniq ob’ektga qarashli emas va ob’ekt nomidan chaqirilmaydi. Sinf usulini chaqirilganda sinf nomi ko’rsatiladi, (ekzemplyar) nusxa usulida esa – ob’ekt nomi ko’rsatiladi. - Ruby haqidagi chop etilgan materiallarda nusxa usulini belgilash uchun reshotka # potasiyasi qo’llaniladi. Masalan, biz File. chmod deb yozamiz, File sinfidagi chmod usulini belgilah uchun, va File # chmod shu nomli nusxa usulini belgilash uchun. Bu potasiya Ruby sintaksisini qismi bo’lib kelmaydi. - Ruby konstantlar o’zgartirilmaydi. Ularni nusxa usullarda o’zgartirib bo’lmaydi, ammo boshqa joylarda mumkin. - ChU tilidan yield kalit so’zi kelgan va ba’zi dasturchilar uchun bu tushunarli emas. Iterator chaqirilganda, shu iterator ichida blokka boshqarishni uzatishda foydalaniladi. - O’zlashtirishning tarkibiy operatorlari + =, - = va boshqalar -bu usullar emas. Bu uzun yozuvning qisqartirilgan shakli. Shuning uchun x Download 0.58 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling