কখনও কখনও আমি রুবিতে এমন পদ্ধতিগুলি দেখতে পাই যে "আছে?" এবং "!" তাদের শেষে যেমন:
name = "sample_string"
name.reverse
name.reverse!
name.is_binary_data?
আমি ভাবছিলাম তাদের উদ্দেশ্য কী? এগুলি কি কেবল সিনট্যাক্স চিনিযুক্ত?
কখনও কখনও আমি রুবিতে এমন পদ্ধতিগুলি দেখতে পাই যে "আছে?" এবং "!" তাদের শেষে যেমন:
name = "sample_string"
name.reverse
name.reverse!
name.is_binary_data?
আমি ভাবছিলাম তাদের উদ্দেশ্য কী? এগুলি কি কেবল সিনট্যাক্স চিনিযুক্ত?
উত্তর:
এটি পঠনযোগ্যতার জন্য "কেবল চিনোকেটিং", তবে এর সাধারণ অর্থ রয়েছে:
!
কিছু স্থায়ী বা সম্ভাব্য বিপজ্জনক পরিবর্তন সম্পাদন করে শেষ পদ্ধতিগুলি ; উদাহরণ স্বরূপ:
Enumerable#sort
বস্তুটির সাজানো সংস্করণটি Enumerable#sort!
স্থানে সাজানোর সময় প্রদান করে ।ActiveRecord::Base#save
সংরক্ষণ ব্যর্থ হলে মিথ্যা ফেরত দেয়, যখন ActiveRecord::Base#save!
ব্যতিক্রম উত্থাপন করে।Kernel::exit
কোনও স্ক্রিপ্ট থেকে প্রস্থান করার কারণ Kernel::exit!
ঘটে, ততক্ষণে তা কোনও প্রস্থান হ্যান্ডলারকে বাইপাস করে।?
একটি বুলিয়ানের পরিবর্তে শেষ পদ্ধতিগুলি যা বাক্যটির মতো কোড প্রবাহকে আরও স্বজ্ঞাত করে তোলে - if number.zero?
"সংখ্যাটি শূন্য হলে" এর মতো পড়ে, তবে if number.zero
কেবল অদ্ভুত দেখাচ্ছে।আপনার উদাহরণে, name.reverse
বিপরীত স্ট্রিংয়ের মূল্যায়ন করে তবে কেবলমাত্র name.reverse!
লাইনের পরে name
পরিবর্তনশীলটি উল্টো নামটি ধারণ করে। name.is_binary_data?
" name
বাইনারি ডেটা?" বলে মনে হচ্ছে ।
Array#clear
উদাহরণস্বরূপ,। এটি অ্যারে সাফ করে। অ্যারে সাফ করা প্রাকৃতিকভাবে এটিকে পরিবর্তন করে। এটি সম্পর্কে অবাক হওয়ার মতো কিছু নেই, নামটি ইতিমধ্যে এটি পরিষ্কার করে দিয়েছে, তাই: কোনও ধাক্কা নেই। রুবি- forum.com/topic/176830#773946 দেখুন ।
প্রশ্ন চিহ্ন নির্দেশ করে যে পদ্ধতিটি বুলিয়ান দেয় returns ইতিমধ্যে এখানে উত্তর:
রুবিতে প্রশ্ন চিহ্ন অপারেটরের অর্থ কী?
ঠুং ঠুং শব্দ নির্দেশ করে যে পদ্ধতিটি নিজেই বস্তুটিতে কাজ করে। ইতিমধ্যে এখানে উত্তর:
রুবিতে এর ?
অর্থ এই যে পদ্ধতিটি একটি বুলিয়ান ফিরিয়ে আনতে চলেছে এবং এটি !
যে বস্তুকে ডাকা হয়েছিল তা সংশোধন করে। কোডটি দেখার সময় তারা পাঠযোগ্যতার উন্নতি করতে পারে।
- আমি মনে করি - সংখ্যাগরিষ্ঠ প্রোগ্রামিং ভাষার বিপরীতে ...
রুবি, পদ্ধতিগুলিকে প্রশ্ন চিহ্ন বা বিস্ময়কর চিহ্ন দিয়ে শেষ করার অনুমতি দেওয়া হয়েছে।
সম্মেলনের মাধ্যমে, প্রশ্নগুলির উত্তর দেওয়ার পদ্ধতিগুলি (যেমন অ্যারে # খালি? প্রাপক খালি থাকলে সত্য প্রত্যাবর্তন করে) প্রশ্ন চিহ্নে শেষ হয়।
সম্ভাব্য "বিপজ্জনক" পদ্ধতিগুলি (অর্থাত্ স্বয়ং বা আর্গুমেন্টগুলিকে সংশোধনকারী পদ্ধতিগুলি, প্রস্থান করুন! ইত্যাদি) বিস্মৃত চিহ্নের সাথে শেষ হয়।
থেকে: http://www.ruby-lang.org/en/docamentation/ruby-from-other-languages/ , বিভাগ মজার পদ্ধতির নাম
?
প্রাকটিক পদ্ধতি বলে।
সাবধান, এটি সবসময় হয় না। উদাহরণস্বরূপ, রুবি অ্যারে # কনট্যাট http://docs.ruby-lang.org/en/2.0.0/Array.html#method-i-concat ।
আপনি যেখানে খারাপভাবে পোড়াতে পারেন তা হ'ল কিছু MyActiveRecordModel.column_names.concat([url])
। পরবর্তীতে মাইএ্যাকটিভরেকর্ডমোডেল সম্পর্কিত কলগুলি মাইএ্যাকটিভরেকর্ডমোডেল এবং নিক্ষেপের জন্য 'url' এর একটি কলাম অনুসন্ধান করার চেষ্টা করবে।
পরিবর্তে কনক্যাট করার আগে আপনাকে অবশ্যই এটি ক্লোন করতে হবে। ভাগ্যক্রমে আমার পরীক্ষার স্যুটটি এটি ধরা পড়ে, তবে ..!