আপনি একটি রুবি প্রোগ্রাম লিখছেন এবং আপনি ব্যবহারকারীকে একটি প্রশ্ন জিজ্ঞাসা করতে চান…
আপনি এটা কিভাবে করতে পারেন?
আচ্ছা, আপনি রুবি gets
ব্যবহার করতে পারেন ব্যবহারকারীর ইনপুট পড়ার পদ্ধতি।
আপনি gets
কল করতে পারেন .
তারপর আপনার প্রোগ্রাম আপনার কীবোর্ড দিয়ে কিছু টাইপ করার জন্য এবং এন্টার কী টিপুন।
ফলাফল?
আপনি একটি স্ট্রিং ফিরে পাবেন৷
এই স্ট্রিংটিতে আপনি (বা ব্যবহারকারী) যা টাইপ করেছেন তার বিষয়বস্তু রয়েছে, তাই আপনি যদি এই স্ট্রিংটিকে একটি ভেরিয়েবলে বরাদ্দ করেন তবে আপনি এটি ব্যবহার করতে সক্ষম হবেন৷
একটি সাধারণ উদাহরণ হল একটি অভিবাদন অনুষ্ঠান৷
৷এটা এরকম দেখাচ্ছে :
name = gets.chomp puts "Hello #{name}, nice to meet you!"
#{name}
জিনিসটিকে স্ট্রিং ইন্টারপোলেশন বলে
এটি একবার চেষ্টা করে দেখুন এবং এটি কীভাবে কাজ করে তা দেখুন৷
৷- প্রথমে, এই কোডটিকে একটি “greeting.rb” ফাইলে সেভ করুন
- তারপর, এটিকে "রুবি গ্রীটিং.আরবি" দিয়ে ব্যবহার করুন (একটি টার্মিনাল প্রোগ্রাম থেকে)
আপনার নাম লিখুন এবং আপনার প্রোগ্রাম আপনাকে শুভেচ্ছা জানাবে!
বেশ ভালো।
এখন :
এই chomp
কি ব্যবসা সব সম্পর্কে?
এটি একটি রুবি পদ্ধতি যা gets
এর ফলাফল পরিবর্তন করে একটি খুব নির্দিষ্ট উপায়ে।
এটি সরানোর চেষ্টা করুন৷
৷
বিন্দু সহ (.
) এর আগে, তাই এটি name = gets
হয়ে যায় , name = gets.chomp
এর পরিবর্তে .
যদি আপনি আপনার কোড সংরক্ষণ করেন এবং আবার চালান…
আপনি দেখতে পাবেন যে আপনার অভিবাদনটি এখন দুটি লাইনে বিভক্ত হয়ে গেছে, পুরো অভিবাদন এক লাইনে হওয়ার পরিবর্তে।
এর কি খবর?
আসুন খুঁজে বের করার জন্য বিশদ বিবরণে খনন করা যাক!
নতুন লাইন এবং বিশেষ চরিত্র বোঝা
রুবি get
করার সময় প্রোগ্রামে আপনার টাইপ করা সমস্ত কিছু পড়ে পদ্ধতি সক্রিয়।
আমাদের অভিবাদন অনুষ্ঠানের জন্য , এতে আপনার নাম অন্তর্ভুক্ত রয়েছে।
এবং একটি বিশেষ "নতুন লাইন" অক্ষর যা শুভেচ্ছা বার্তাটিকে দুটি লাইনে বিভক্ত করে তোলে!
নতুন লাইন অক্ষরের সাথে দেখা করুন :
\n
এই ধরনের বিশেষ অক্ষর সাধারণত অদৃশ্য থাকে এবং শুধুমাত্র নতুন লাইন, স্পেস, রঙ ইত্যাদির আকারে দেখা যায়।
আপনি যদি সেগুলি দেখতে চান তবে আপনার $10,000 মূল্যের একটি ম্যাজিক ফ্ল্যাশলাইট প্রয়োজন৷
শুধু মজা করছি!
আপনার যা দরকার তা হল p
পদ্ধতি বা inspect
পদ্ধতি।
উদাহরণ ব্যবহার :
p name # "Jesus\n"
এটা আছে!
আমাদের "নতুন লাইন" অক্ষর (\n
)।
এটি আমাদের মূল প্রশ্নে ফিরিয়ে আনে...
chomp
কি সব সম্পর্কে?
chomp
এর উদ্দেশ্য স্ট্রিং এর শেষে নতুন লাইনের অক্ষর অপসারণ করা হয়।
আপনি যেমন দেখেছেন, এটা খুবই সহায়ক!
অন্য একটি উদাহরণ
এই নতুন লাইনের অক্ষর, বা অন্য কিছু বিশেষ অক্ষর থাকা, একটি স্ট্রিং মুদ্রণ করার সময় কীভাবে দেখায় তার চেয়ে অনেক বেশি জিনিসকে প্রভাবিত করে৷
এটি আপনার if বিবৃতিতেও প্রভাব ফেলতে পারে!
উদাহরণ :
name = gets if name == "David" puts "Hello David, we were expecting you!" end
এই কোডে, আপনি যদি chomp
ব্যবহার না করেন সাথে gets
, নতুন লাইনের অক্ষর (\n
) এর কারণে দুটি স্ট্রিং একই হবে না ), তাই এটি false
তে মূল্যায়ন করে .
Btw…
আপনি gets
এর বাইরে যে স্ট্রিংগুলি পান তার ক্ষেত্রেও এটি প্রযোজ্য , যেমন ডেটাবেস, ফাইল বা অন্য কোনো উৎস থেকে আপনি যে ডেটা পান।
এই বিশেষ চরিত্রগুলির জন্য চোখ খোলা রাখুন!
চম্প বনাম চপ বনাম স্ট্রিপ
অন্য দুটি পদ্ধতি যা ব্যবহারকারীর ইনপুট পরিষ্কার করার জন্য সহায়ক হতে পারে তা হল chop
&strip
.
strip
সহ আপনি সাদা স্পেস অপসারণ করতে পারেন।
উদাহরণ :
" John Smith ".strip
chop
দিয়ে আপনি সর্বদা শেষ অক্ষরটি মুছে ফেলবেন।
প্রথম অক্ষর অপসারণ
আরেকটি জিনিস আপনার প্রয়োজন হতে পারে শুরু থেকে অক্ষর অপসারণ.
আপনি এটি এভাবে করতে পারেন :
str = "Mr. John" str[0..3] = "" str # "John"
এটি প্রথম চারটি অক্ষরকে সরিয়ে দেয়৷
দুইটি পদ্ধতি? প্লট ঘন হয়!
একটি বিশেষ কেস আছে...
যেখানে আপনাকে $stdin.gets
ব্যবহার করতে হবে পরিবর্তে শুধু gets
.
যদি আপনি এরকম একটি ত্রুটি পান :
`gets': No such file or directory @ rb_sysopenনেই
কেন?
কারণ gets
এর দুটি সংস্করণ রয়েছে পদ্ধতি।
- ডিফল্ট সংস্করণ একটি ফাইলের নাম পড়ার চেষ্টা করে
- বিকল্প সংস্করণ (
$stdin.gets
) সর্বদা ব্যবহারকারীর ইনপুট থেকে পড়ে
এখন আপনি জানেন, যদি আপনি gets
ব্যবহার করার সময় এরকম একটি ত্রুটি দেখতে পান , এটিকে $stdin.gets
এ পরিবর্তন করার চেষ্টা করুন .
সারাংশ
আপনি gets &chomp পদ্ধতি সম্পর্কে শিখেছেন, তারা কি করে, তারা কিভাবে কাজ করে এবং কেন তারা দরকারী!
এই রুবি টিউটোরিয়াল দিয়ে শিখতে থাকুন।
পড়ার জন্য ধন্যবাদ! 🙂