একটি অ্যারে কি?
একটি অ্যারে হল একটি অন্তর্নির্মিত রুবি ক্লাস, যা শূন্য বা তার বেশি আইটেমের একটি তালিকা রাখে , এবং পদ্ধতিগুলি অন্তর্ভুক্ত করে যা আপনাকে এই সমস্ত আইটেমগুলিকে সহজে যোগ করতে, অ্যাক্সেস করতে এবং লুপ করতে সাহায্য করে৷
এটি সহায়ক, কারণ অ্যারে বিদ্যমান না থাকলে আপনাকে অনেকগুলি ভেরিয়েবল ব্যবহার করতে হবে৷
উদাহরণ :
a = 1 b = 2 c = 3
কিন্তু পরিবর্তে, আপনি করতে পারেন :
numbers = [1, 2, 3]
সেরা অংশ?
আপনি একটি অ্যারের ভিতরে কিছু রাখতে পারেন!
লাইক :
- সংখ্যা
- স্ট্রিংস
- আরো অ্যারে! (যা এটিকে একটি বহুমাত্রিক অ্যারে করে তুলবে)
আসুন অ্যারে সম্পর্কে আরও শিখি যাতে আপনি সেগুলির সর্বোত্তম ব্যবহার করতে পারেন!
বিষয়বস্তু
- 1 অ্যারে জিরো-ইনডেক্স করা হয়
- 2 রুবি অ্যারে পদ্ধতি
- 3 কিভাবে একটি অ্যারেকে একটি স্ট্রিং এ রূপান্তর করতে হয়
- 4 মাল্টি-ডাইমেনশনাল অ্যারে (2D অ্যারে এবং আরও)
- 5 রুবি অ্যারেগুলির উপর কীভাবে পুনরাবৃত্তি করবেন
- 6 নেগেটিভ ইনডেক্সিং
- 7 আরো অ্যারে অপারেশন
- একাধিক অ্যারে সহ 8 অপারেশন
- 9 উপসংহার
- 9.1 সম্পর্কিত
অ্যারেগুলি জিরো-ইনডেক্স করা হয়
আপনি উপাদানগুলি অ্যাক্সেস করতে পারেন৷ তাদের সূচী ব্যবহার করে একটি অ্যারের ভিতরে , যা 0 এ শুরু হয়।
আপনার যদি "বিড়াল", "কুকুর" এবং "বাঘ" শব্দগুলির সাথে একটি অ্যারে থাকে তবে এটি এটি পছন্দ করবে:
এখানে একটি কোড উদাহরণ যা ছবিতে ডেটা উপস্থাপন করে:
["cat", "dog", "tiger"]
এখন :
আপনি অ্যারেগুলির সাথে কী করতে পারেন তা আবিষ্কার করবেন!
৷রুবি অ্যারে পদ্ধতি
চলুন শুরু করা যাক কিভাবে আপনি একটি অ্যারে তৈরি করতে পারেন।
আপনি একটি খালি অ্যারে তৈরি করতে পারেন, তারপরে এতে নতুন আইটেম যোগ করতে পারেন, অথবা আপনি প্রারম্ভিক মানগুলির সাথে একটি অ্যারে তৈরি করতে পারেন৷
একটি খালি অ্যারে শুরু করুন :
users = []
ডেটা সহ একটি অ্যারে শুরু করুন :
users = ["john", "david", "peter"]
যদি আপনি একটি স্ট্রিং-অনলি অ্যারে তৈরি করেন…
আপনি %w
দিয়ে একটি অ্যারে তৈরি করে প্রতিটি স্ট্রিংয়ের জন্য উদ্ধৃতি টাইপ করা এড়াতে পারেন .
উদাহরণ :
users = %w(john david peter)
এখন যেহেতু আমাদের একটি অ্যারে রয়েছে আপনি এতে থাকা উপাদানগুলি অ্যাক্সেস করতে পারেন৷
এখানে কিভাবে :
users[0] # First element of the array users[1] # Second element of the array users[2] # Third element of the array
আপনি প্রথম এবং শেষ পদ্ধতিগুলিও ব্যবহার করতে পারেন:
users.first # First element of the array users.last # Last element of the array
আপনার অ্যারেতে আইটেমগুলি কীভাবে যুক্ত করবেন তা এখানে রয়েছে:
# Both of these have the same effect, << is preferred. users.push "andrew" users << "andrew"
আপনি কিভাবে আপনার অ্যারে থেকে উপাদান মুছে ফেলবেন তা এখানে:
last_user = users.pop # Removes the last element from the array and returns it user.delete_at(0) # Removes the first element of the array
এছাড়াও শিফট এবং আনশিফ্ট পদ্ধতি রয়েছে, যেগুলি পপ/পুশের মতো কিন্তু অ্যারের সামনে উপাদানগুলি গ্রহণ বা যোগ করে৷
users.unshift "robert" # Adds an element in front of the array users.shift # Removes the first element of the array and returns it
এই অ্যারে কি একটি নির্দিষ্ট আইটেম ধারণ করে বা অন্তর্ভুক্ত করে?
রুবিতে একটি অ্যারেতে একটি মান বিদ্যমান কিনা তা পরীক্ষা করুন:
numbers = [1,2,3] numbers.include?(2) # true numbers.include?(10) # false
অ্যারের দৈর্ঘ্য কত? (অন্য কথায়, এতে কতগুলি উপাদান রয়েছে)
words = ["cat", "coconut", "bacon"] words.size # 3
এখানে আপনার জন্য একটি ছোট চিটশিট রয়েছে :
অপারেশন | পদ্ধতি |
---|---|
শুরু করুন | Array.new, [], %w |
পড়ুন | [0], প্রথম, শেষ |
যোগ করুন | পুশ, <<, আনশিফট |
সরান | পপ, ডিলিট_এট, শিফট |
কিভাবে একটি অ্যারেকে একটি স্ট্রিংয়ে রূপান্তর করতে হয়
আপনি Array#join
ব্যবহার করে যেকোনো অ্যারেকে একটি স্ট্রিংয়ে রূপান্তর করতে পারেন পদ্ধতি।
এখানে একটি উদাহরণ :
letters = %w(a b c d) letters.join # "abcd"
লক্ষ্য করুন যে এই পদ্ধতিটি 1টি ঐচ্ছিক প্যারামিটার নেয় যাতে আপনি অ্যারের উপাদানগুলির মধ্যে একটি বিভাজক সংজ্ঞায়িত করতে পারেন যখন তারা একসাথে যুক্ত হয়৷
letters = %w(a b c d) letters.join(" ") # "a b c d"
আপনি যদি বিপরীত অপারেশন চান, স্ট্রিং থেকে অ্যারে পর্যন্ত, আপনি split
ব্যবহার করতে চান পদ্ধতি:
"a b c".split
যার ফলাফল হল:
["a", "b", "c"]
মাল্টি-ডাইমেনশনাল অ্যারে (2D অ্যারে এবং আরও)
একটি অ্যারে অন্য অ্যারে নিয়ে গঠিত হতে পারে, আমরা একে বহুমাত্রিক অ্যারে বলি।
2d অ্যারের উদাহরণ :
users = [ [1, 'Peter'], [2, 'Steven'] ]
প্রথম সাব-অ্যারে থেকে প্রথম উপাদান অ্যাক্সেস করতে আপনি এই সিনট্যাক্স ব্যবহার করতে পারেন:
users[0][0] # 1
এবং প্রথম সাব-অ্যারের দ্বিতীয় উপাদানের জন্য:
users[0][1] # 'Peter'
এমন কিছু ক্ষেত্রে রয়েছে যেখানে আপনি একটি বহুমাত্রিক অ্যারেকে একটি নিয়মিত অ্যারেতে রূপান্তর করতে চান৷
আপনি সমতল পদ্ধতি ব্যবহার করে এটি করতে পারেন:
users.flatten # [1, "Peter", 2, "Steven"]
রুবি অ্যারেগুলির উপর কীভাবে পুনরাবৃত্তি করবেন
এখন আপনার কাছে একটি অ্যারে আছে যদি আপনি এটির বিষয়বস্তুগুলি গণনা করতে এবং সেগুলি মুদ্রণ করতে পারেন তবে কি ভাল হবে না?
ভালো খবর হল আপনি পারবেন!
উদাহরণ :প্রতিটি
ব্যবহার করে আপনার অ্যারে প্রিন্ট করুনusers.each { |item| puts item }
আপনি যদি মান এবং সূচক উভয়ের সাথে কাজ করতে চান তবে আপনি সূচী পদ্ধতির সাথে অ্যারের প্রতিটি ব্যবহার করতে পারেন:
users.each_with_index { |item, idx| puts "#{item} with index #{idx}" }রাখে
দ্রষ্টব্য :এই লুপিং অপারেশনগুলির বেশিরভাগই পাওয়া যায় গণনাযোগ্য মডিউলকে ধন্যবাদ, যা ডিফল্টরূপে অ্যারে ক্লাসে মিশ্রিত হয়৷
উদাহরণ :ম্যাপ ব্যবহার করে আপনার অ্যারের প্রতিটি শব্দকে ক্যাপিটাল করুন।
users = users.map { |user| user.capitalize } users = users.map(&:capitalize)
map
মেথড ইন-প্লেস অ্যারেকে পরিবর্তন করে না, এটি শুধুমাত্র পরিবর্তিত উপাদানগুলির সাথে একটি নতুন অ্যারে প্রদান করে, তাই আমাদের ফলাফলগুলিকে একটি ভেরিয়েবলে ফিরিয়ে দিতে হবে।
একটি মানচিত্র! আছে৷ (বিস্ময়সূচক বিন্দু লক্ষ্য করুন) পদ্ধতি যা সরাসরি অ্যারে পরিবর্তন করবে, কিন্তু সাধারণভাবে সহজ সংস্করণ পছন্দ করা হয়।
আরেকটি জিনিস যা আপনি করতে চাইতে পারেন তা হল আপনার অ্যারের সমস্ত আইটেমগুলি খুঁজে বের করুন যা নির্দিষ্ট মানদণ্ডের সাথে খাপ খায়৷
৷উদাহরণ :10 এর চেয়ে বড় সব সংখ্যা খুঁজুন:
numbers = [3, 7, 12, 2, 49] numbers.select { |n| n > 10 } # => 12, 49
নেতিবাচক সূচীকরণ
আপনি শিখেছেন যে আপনি যদি রুবি অ্যারে থেকে একটি নির্দিষ্ট উপাদান অ্যাক্সেস করতে চান তবে আপনাকে ইনডেক্সিং ব্যবহার করতে হবে (বা first
এর মত পদ্ধতি &last
)।
কিন্তু নেতিবাচক সূচী সম্পর্কে কি?
আমি -1
এর মত কিছু ব্যবহার করার কথা বলছি আপনার অ্যারে সূচক হিসাবে৷
রুবি যা করবে তা হল অ্যারের শেষ থেকে শুরু। তাই -1
আপনি শেষ আইটেম পাবেন, -2
আপনি শেষ থেকে দ্বিতীয় পাবেন, ইত্যাদি।
উদাহরণ :
letters = ["a", "b", "c"] letters[-1] # "c" letters[-2] # "b"
আরো অ্যারে অপারেশন
অ্যারে ব্যবহার করে আপনি অনেক কিছু করতে পারেন, যেমন তাদের সাজানো বা এলোমেলো উপাদান বাছাই করা।
আপনি একটি অ্যারে সাজানোর জন্য সাজানোর পদ্ধতি ব্যবহার করতে পারেন, আপনার অ্যারেতে স্ট্রিং বা সংখ্যা থাকলে এটি ঠিক কাজ করবে। আরও উন্নত বাছাইয়ের জন্য দেখুন sort_by.
numbers = numbers.sort
আপনি একটি অ্যারে থেকে সদৃশ উপাদানগুলিও সরাতে পারেন, যদি আপনি নিজেকে প্রায়শই এটি করতে দেখেন তবে আপনি পরিবর্তে একটি সেট ব্যবহার করার কথা বিবেচনা করতে পারেন৷
numbers = [1, 3, 3, 5, 5] numbers = numbers.uniq # => [1, 3, 5]
লক্ষ্য করুন যে এটি স্থায়ীভাবে আপনার অ্যারে পরিবর্তন করে না। বেশিরভাগ রুবি পদ্ধতি আপনার অনুরোধ করা পরিবর্তনগুলির সাথে একটি নতুন অ্যারে তৈরি করবে। সুতরাং আপনি যদি ফলাফলগুলি সংরক্ষণ করতে চান তবে আপনাকে একটি পরিবর্তনশীল ব্যবহার করতে হবে বা এই উদাহরণে, uniq!
ব্যবহার করুন পদ্ধতি।
আপনি যদি আপনার অ্যারে থেকে একটি এলোমেলো উপাদান বাছাই করতে চান তবে আপনি sample
ব্যবহার করতে পারেন পদ্ধতি:
numbers.sample
আপনি আপনার অ্যারেকে "টুকরা" করতে চাইতে পারেন, পুরো জিনিসটির পরিবর্তে এটির একটি অংশ নিয়ে৷
উদাহরণ :অ্যারে থেকে প্রথম 3টি উপাদান নিন, এটি পরিবর্তন না করে:
numbers.take(3) numbers[0,3]
আপনি আরও উন্নত রুবি অ্যারে স্লাইসিং করতে পারেন। উদাহরণস্বরূপ, আপনি প্রথমটি ছাড়া সমস্ত উপাদান পেতে চাইতে পারেন:
numbers[1..-1]
কমা (0,3
) ব্যবহারের মধ্যে পার্থক্য লক্ষ্য করুন ) এবং একটি পরিসর (1..-1
) প্রথমটি বলে "আমাকে সূচক 0 থেকে শুরু করে 3টি উপাদান পান", আর শেষটি বলে "আমাকে এই পরিসরের অক্ষরগুলি পান"।
একটি অ্যারের আকার পান:
numbers.size # 5
একটি অ্যারে খালি কিনা পরীক্ষা করুন:
numbers.empty? # false
nil
সরান মান:
numbers << nil # [1, 3, 3, 5, 5, nil] numbers.compact # [1, 3, 3, 5, 5]
একাধিক অ্যারে সহ অপারেশনগুলি
আপনার যদি দুটি অ্যারে থাকে এবং সেগুলিকে একটিতে যোগ দিতে বা একত্রিত করতে চান তবে আপনি এটি এভাবে করতে পারেন:
# Faster, because this changes the users array users.concat(new_users) # Slower, because this creates a new array users += new_users
আপনি এইরকম একটি অ্যারে থেকে উপাদানগুলিও সরাতে পারেন, যেখানে users_to_delete
এছাড়াও একটি অ্যারে:
users = users - users_to_delete
অবশেষে, আপনি একই সময়ে দুটি অ্যারেতে উপস্থিত উপাদানগুলি পেতে পারেন:
users & new_users
উপসংহার
রুবি অ্যারেগুলি খুব দরকারী এবং তারা আপনার পাশে একটি শক্তিশালী মিত্র হবে৷
৷একটি অ্যারে তৈরি করা, এতে উপাদান যোগ করা, সূচক দ্বারা উপাদানগুলি অ্যাক্সেস করা ইত্যাদি অনুশীলন করা নিশ্চিত করুন। এছাড়াও রুবি হ্যাশ সম্পর্কে পড়ুন, আরেকটি গুরুত্বপূর্ণ ক্লাস যা আরও আকর্ষণীয় কোড লিখতে অ্যারের সাথে একত্রিত করা যেতে পারে।
অনুশীলন নিখুঁত করে তোলে!
আপনি যদি এটি দরকারী বলে মনে করেন তবে অনুগ্রহ করে এই পোস্টটি শেয়ার করুন এবং নীচের আমার নিউজলেটারটিতে সদস্যতা নিন 🙂