একাধিক স্ট্রিং একসাথে একত্রিত করা এমন কিছু যা আপনাকে প্রায়শই রুবিতে করতে হয়।
কিন্তু আপনি এটা কিভাবে করতে পারেন?
আচ্ছা…
দুটি উপায় আছে :
- রুবি স্ট্রিং সংযোগ
- রুবি স্ট্রিং ইন্টারপোলেশন
সংযোগ এইরকম দেখায়৷ :
a = "Nice to meet you" b = ", " c = "do you like blueberries?" a + b + c # "Nice to meet you, do you like blueberries?"
আপনি +
ব্যবহার করতে পারেন অপারেটর অন্য একটি স্ট্রিং যোগ করতে.
এই ক্ষেত্রে, a + b + c
, একটি নতুন স্ট্রিং তৈরি করে।
Btw, এই কাজটি করার জন্য আপনাকে ভেরিয়েবল ব্যবহার করতে হবে না।
উদাহরণ :
puts "I like" + " " + "chocolate" # I like chocolate
আরেকটি বিকল্প হল +=
ব্যবহার করা অপারেটর।
উদাহরণ :
a = "" a += "test" a += "test" a += "test" a # "testtesttest"
আমরা একটি খালি স্ট্রিং দিয়ে শুরু করি এবং আমরা এটিকে যুক্ত করে একটি বড় তৈরি করি৷
কিন্তু এর সাথে একটি সমস্যা আছে...
এটা খুব ধীর!
পরবর্তী সমাধান আসছে।
রুবি কনক্যাট পদ্ধতির উদাহরণ
আপনি রুবি concat
ব্যবহার করতে পারেন স্ট্রিংগুলিকে দক্ষতার সাথে একত্রিত করার পদ্ধতি৷
এখানে কিভাবে :
str = "" str.concat("a") str.concat("a") str # "aa"
এটি দ্রুত কারণ এটি স্ট্রিং str
পরিবর্তন করবে , একটি নতুন তৈরি করার পরিবর্তে৷
কিন্তু এটি +=
এর মত সুন্দর নয় …
অন্য উপায় আছে?
হ্যাঁ!
আপনি <<
ব্যবহার করতে পারেন পদ্ধতি, যা concat
এর একটি উপনাম .
দ্রষ্টব্য :Ruby 2.4 দিয়ে শুরু করে,
concat
এর সাথে একটি ছোট পার্থক্য রয়েছে আপনি<<
সহ একাধিক আর্গুমেন্ট পাস করতে পারেন আপনি একবারে শুধুমাত্র একটি পাস করতে পারেন।
উদাহরণ :
str = "" str << "a" str << "a"
আপনি এটিও করতে পারেন৷ :
str = "" str << "a" << "a"
শুধুমাত্র একটি সমস্যা বাকি আছে।
আপনি যদি ভেরিয়েবলের সাথে একটি স্ট্রিংকে একত্রিত করতে চান, কিন্তু একটি ভেরিয়েবল একটি স্ট্রিং নয়, আপনি একটি অপ্রত্যাশিত ফলাফল পাবেন৷
একবার দেখুন :
"" + 1 # TypeError: no implicit conversion of Fixnum into String "" << 1 # "\x01"
সমাধান কি?
সমস্ত নতুন বস্তুকে স্ট্রিং-এ রূপান্তর করতে to_s পদ্ধতি ব্যবহার করুন।
এরকম :
"" + 1.to_s
অবশ্যই, এটি কুৎসিত দ্রুত হয়ে যায়, তাই আমাদের কাছে আরেকটি টুল আছে যা আপনি ব্যবহার করতে পারেন।
রুবি স্ট্রিং ইন্টারপোলেশন কিভাবে ব্যবহার করবেন
ইন্টারপোলেশন বা ভেরিয়েবলগুলিকে স্ট্রিংগুলিতে একত্রিত করা একটি শক্তিশালী কৌশল।
এটি আপনাকে একটি স্ট্রিংকে "টেমপ্লেটাইজ" করার অনুমতি দেয়।
এখানে একটি উদাহরণ :
age = 33 name = "Jesus" "Hello, my name is #{name} & I'm #{age} years old."
আমরা যেকোনো name
প্লাগ ইন করতে পারি &age
স্ট্রিং এর আগে ভেরিয়েবল হিসাবে সেট করে।
সেরা অংশ?
রুবি আপনার জন্য এই মানগুলিকে স্ট্রিংগুলিতে রূপান্তর করার যত্ন নেয়৷
তাই আপনাকে to_s
কল করতে হবে না !
ভালো জিনিস।
প্রিপেন্ডিং স্ট্রিংস
স্ট্রিংকে একত্রিত করার আরেকটি উপায় আছে।
ভেরিয়েবল এবং ছোট স্ট্রিংগুলিকে "স্ট্রিং ইন্টারপোলেশন" দিয়ে নতুন কিছুতে একত্রিত করার পরিবর্তে।
অথবা শেষে <<
দিয়ে যুক্ত করুন &concat
.
এছাড়াও আপনি prepend
করতে পারেন !
উদাহরণ :
str = "" str.prepend("1") str.prepend("2") str.prepend("3") # "321"
আপনি যদি ভাবছেন সেখানে একটি append
আছে পদ্ধতি, ভাল নেই।
শুধুমাত্র অ্যারের জন্য।
সারাংশ
আপনি রুবিতে স্ট্রিং সংযোজন, সংযোজন, প্রিপেন্ডিং এবং ইন্টারপোলেশন সম্পর্কে শিখেছেন, এটি আপনাকে একাধিক স্ট্রিংকে একত্রিত করতে দেয়।
অনুগ্রহ করে এই নিবন্ধটি শেয়ার করুন যদি আপনি এটি সহায়ক বলে মনে করেন 🙂
পড়ার জন্য ধন্যবাদ।