আমি এইভাবে একটি অ্যারে শুরু করি:
array = Array.new
array << '1' << '2' << '3'
এক ধাপে কি তা করা সম্ভব? যদি তাই হয়, কিভাবে?
array = Array.new << 1 << 2 << 3
)
1
করতে হবে '1'
।
আমি এইভাবে একটি অ্যারে শুরু করি:
array = Array.new
array << '1' << '2' << '3'
এক ধাপে কি তা করা সম্ভব? যদি তাই হয়, কিভাবে?
array = Array.new << 1 << 2 << 3
)
1
করতে হবে '1'
।
উত্তর:
আপনি একটি অ্যারে আক্ষরিক ব্যবহার করতে পারেন:
array = [ '1', '2', '3' ]
আপনি একটি ব্যাপ্তিও ব্যবহার করতে পারেন:
array = ('1'..'3').to_a # parentheses are required
# or
array = *('1'..'3') # parentheses not required, but included for clarity
সাদা স্পেস-সীমাবদ্ধ স্ট্রিংগুলির অ্যারেগুলির জন্য, আপনি পার্সেন্ট স্ট্রিং সিনট্যাক্স ব্যবহার করতে পারেন :
array = %w[ 1 2 3 ]
Array.new
প্রতিটি প্রবেশের মান কী হবে তা নির্ধারণ করতে আপনি একটি ব্লকও পাস করতে পারেন :
array = Array.new(3) { |i| (i+1).to_s }
পরিশেষে, যদিও এটি উপরের অন্যান্য উত্তরগুলির মতো তিনটি স্ট্রিংয়ের একই অ্যারে তৈরি করে না, তবে এটিও নোট করুন যে আপনি অ্যারে তৈরি করতে রুবি ১.৮..7++ এ গণক ব্যবহার করতে পারেন; উদাহরণ স্বরূপ:
array = 1.step(17,3).to_a
#=> [1, 4, 7, 10, 13, 16]
to_a
( [*'1'..'3']
) এর চেয়ে বেশি পছন্দ করি, তারপরেও বিশদ উত্তরের জন্য প্লাস ওয়ান ।
Array[ "1","2","3"] #=> ["1","2","3"]
(আমি মনে করি না অ্যারে আক্ষরিক নির্মাণকারীর সাথে এই পদ্ধতির কোনও যোগ আছে)। আপনি শীর্ষ স্তরের কার্নেল # Array(1..5) #=> [1,2,3,4,5]
এক রৈখিক:
array = [] << 1 << 2 << 3 #this is for fixnums.
অথবা
a = %w| 1 2 3 4 5 |
অথবা
a = [*'1'..'3']
অথবা
a = Array.new(3, '1')
অথবা
a = Array[*'1'..'3']
[1,2,3]
যার বিপরীতে একটি একক সূচনা হয়। এছাড়াও, আপনার আরও অক্ষর। এছাড়াও, আপনি ফিক্সনুমসের একটি অ্যারে তৈরি করেছেন যেখানে ওপি স্ট্রিংগুলির একটি অ্যারে সম্পর্কে জিজ্ঞাসা করছে।
উপরের উত্তরগুলির সাথে, আপনি এটিও করতে পারেন
=> [*'1'.."5"] #remember *
=> ["1", "2", "3", "4", "5"]
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
।
এটি করার এক ছয় উপায়ের আরও বেশি প্রমাণ করার জন্য:
plus_1 = 1.method(:+)
Array.new(3, &plus_1) # => [1, 2, 3]
যদি 1.মাদবাদী (: +) সম্ভব না হয়, আপনিও করতে পারেন
plus_1 = Proc.new {|n| n + 1}
Array.new(3, &plus_1) # => [1, 2, 3]
অবশ্যই, এটি এই পরিস্থিতিতে ওভারকিল, তবে যদি plus_1
সত্যিই দীর্ঘ প্রকাশ হয় তবে আপনি এটি অ্যারে তৈরি থেকে আলাদা লাইনে রাখতে চান to
আপনি করতে পারেন
array = ['1', '2', '3']
অন্যরা যেমন উল্লেখ করেছে, আপনি% w স্বরলিপি সহ এરેটি আরম্ভ করতে পারেন:
array = %w(1 2 3)
অথবা
array = %w[1 2 3]
দয়া করে মনে রাখবেন যে উভয় ক্ষেত্রেই প্রতিটি উপাদান একটি পূর্ণসংখ্যার চেয়ে স্ট্রিং হয়। সুতরাং আপনি যদি এমন কোনও অ্যারে চান যার উপাদানগুলি পূর্ণসংখ্যার হয় তবে আপনার প্রতিটি উপাদানকে অ্যাডাস্ট্রোফসের সাথে মোড়ানো উচিত নয়:
array_of_integers = [1, 2, 3]
এছাড়াও, আপনাকে উপাদানগুলির মধ্যে কমা রাখতে হবে না (এটি% w স্বরলিপি ছাড়াই অ্যারে তৈরি করার সময় প্রয়োজনীয়)। আপনি যদি এটি করেন (যা আমি প্রায়শই ভুল করে করতাম), যেমন:
wrong_array = %w(1, 2, 3)
এর উপাদানগুলি তিনটি স্ট্রিং হবে ---- "1,", "2,", "3"। সুতরাং আপনি যদি:
puts wrong_array
আউটপুট হবে:
1,
2,
3
=>nil
যা আমরা এখানে চাই না।
আশা করি এটি বিষয়টি পরিষ্কার করতে সহায়তা করবে!
আপনি কেবল %w
রুবি অ্যারেতে স্বরলিপি দিয়ে এটি করতে পারেন ।
array = %w(1 2 3)
এটি অ্যারের সাথে 1,2,3 অ্যারের মান যুক্ত করবে এবং আউটপুট হিসাবে প্রিন্ট আউট করবে ["1", "2", "3"]