আপনি সম্ভবত নিম্নলিখিত রুবি শর্টহ্যান্ডের সাথে পরিচিত ( aএটি একটি অ্যারে):
a.map(&:method)
উদাহরণস্বরূপ, irb এ নিম্নলিখিত চেষ্টা করুন:
>> a=[:a, 'a', 1, 1.0]
=> [:a, "a", 1, 1.0]
>> a.map(&:class)
=> [Symbol, String, Fixnum, Float]
বাক্য a.map(&:class)গঠনটি একটি সংক্ষিপ্তকরণ a.map {|x| x.class}।
এই সিনট্যাক্স সম্পর্কে আরও পড়ুন " রুবিতে মানচিত্র (&: নাম) এর অর্থ কী? "
সিনট্যাক্সের মাধ্যমে &:classআপনি classপ্রতিটি অ্যারের উপাদানটির জন্য একটি পদ্ধতি কল করছেন।
আমার প্রশ্ন: আপনি কি পদ্ধতিতে কলটিতে যুক্তি সরবরাহ করতে পারেন? এবং যদি তা হয়, কিভাবে?
উদাহরণস্বরূপ, আপনি কীভাবে নীচের বাক্য গঠনটি রূপান্তর করেন
a = [1,3,5,7,9]
a.map {|x| x + 2}
থেকে &:সিনট্যাক্সটা কি?
আমি প্রস্তাব দিচ্ছি না যে &:সিনট্যাক্সটি আরও ভাল। আমি কেবল &:যুক্তি দিয়ে সিনট্যাক্স ব্যবহারের যান্ত্রিকগুলিতে আগ্রহী ।
আমি ধরে নিলাম আপনি জানেন যে +এটি পূর্ণসংখ্যা শ্রেণিতে একটি পদ্ধতি। আপনি নীচে থেকে নিম্নলিখিত চেষ্টা করতে পারেন:
>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2