ورودی ها در Ruby
در این بخش به بررسی ورودی ها در Ruby می پردازیم، Ruby یکی از زبانهای برنامهنویسی قدرتمند و انعطافپذیر است که به دلیل سادهبودن سینتکس و قابلیت خوانایی بالا، محبوبیت زیادی در میان برنامهنویسان دارد. یکی از بخشهای مهم در برنامهنویسی با هر زبان، توانایی دریافت داده از کاربر یا منابع مختلف است. در Ruby، کار با ورودیها به شیوهای ساده و در عین حال کاربردی پیادهسازی شده است. این ویژگی به برنامهنویسان اجازه میدهد که برنامههایی با قابلیت تعامل بالا و کاربرپسند ایجاد کنند.
ورودیها میتوانند از منابع مختلفی همچون صفحهکلید، فایلها، یا حتی شبکه گرفته شوند. درک نحوه کار با ورودیها و مدیریت آنها در Ruby اهمیت زیادی دارد زیرا به شما کمک میکند برنامههایی پویا و انعطافپذیر بسازید. در این مقاله، با استفاده از مثالها و توضیحات جامع، به بررسی جزئیات نحوه کار با ورودیها در Ruby خواهیم پرداخت.
دریافت ورودی از کاربر با استفاده از gets
یکی از سادهترین روشها برای دریافت ورودی از کاربر در Ruby استفاده از متد gets
است. این متد یک خط ورودی از کاربر میگیرد و آن را بهعنوان یک رشته برمیگرداند.
مثال:
puts "نام خود را وارد کنید:"
name = gets
puts "سلام، #{name}!"
توضیح:
- خط اول: پیام “نام خود را وارد کنید:” را برای کاربر چاپ میکند.
- خط دوم: متد
gets
منتظر ورودی از کاربر میماند. کاربر میتواند چیزی را تایپ کرده و سپس کلید Enter را فشار دهد. مقدار وارد شده به متغیرname
اختصاص داده میشود. - خط سوم: پیام “سلام، [نام وارد شده]” را چاپ میکند.
نکته: متد gets
مقدار وارد شده توسط کاربر را همراه با کاراکتر خط جدید (\n
) برمیگرداند. برای حذف این کاراکتر میتوانید از متد .chomp
استفاده کنید:
name = gets.chomp
مدیریت ورودیهای عددی
گاهی اوقات نیاز دارید که کاربر عددی را وارد کند. از آنجا که متد gets
همیشه مقدار ورودی را بهعنوان رشته دریافت میکند، باید آن را به نوع عددی تبدیل کنید.
تبدیل ورودی به عدد صحیح یا اعشاری
برای تبدیل رشته به عدد صحیح از متد .to_i
و برای تبدیل به عدد اعشاری از متد .to_f
استفاده میشود.
مثال:
puts "لطفاً یک عدد وارد کنید:"
number = gets.chomp.to_i
puts "عدد شما دو برابر میشود: #{number * 2}"
توضیح:
- خط اول: پیام درخواست عدد از کاربر را چاپ میکند.
- خط دوم: ورودی کاربر به عدد صحیح تبدیل میشود.
- خط سوم: عدد وارد شده در ۲ ضرب شده و نتیجه چاپ میشود.
دریافت ورودی از فایل
علاوه بر دریافت ورودی از کاربر، Ruby به شما اجازه میدهد دادهها را از فایلها نیز بخوانید. این ویژگی برای کار با دادههای بزرگ یا ذخیرهشده بسیار مفید است.
باز کردن و خواندن فایل
برای خواندن داده از فایل از کلاس File
استفاده میشود. متدهایی مانند File.open
یا File.read
به شما امکان خواندن داده از فایل را میدهند.
مثال:
فرض کنید فایلی با نام data.txt
دارید که شامل محتویات زیر است:
سلام
به
Ruby
خوش آمدید!
کد زیر محتویات فایل را میخواند:
file = File.open("data.txt", "r")
contents = file.read
puts contents
file.close
توضیح:
- خط اول: فایل با نام
data.txt
در حالت “خواندن” (r
) باز میشود. - خط دوم: متد
read
کل محتویات فایل را به متغیرcontents
اختصاص میدهد. - خط سوم: محتویات فایل چاپ میشود.
- خط چهارم: فایل بسته میشود تا منابع آزاد شوند.
دریافت ورودی از خط فرمان (Arguments)
Ruby همچنین میتواند ورودی را از طریق آرگومانهای خط فرمان دریافت کند. این ویژگی برای اسکریپتهایی که باید با پارامترهای خاصی اجرا شوند بسیار کاربردی است.
دسترسی به آرگومانها
آرگومانهای خط فرمان در آرایهای به نام ARGV
ذخیره میشوند.
مثال:
کدی بنویسید که نام کاربر را از خط فرمان دریافت کند:
puts "سلام، #{ARGV[0]}!"
سپس اسکریپت را اینگونه اجرا کنید:
ruby script.rb علی
توضیح:
ARGV[0]
: اولین آرگومان خط فرمان را میگیرد. در این مثال مقدارعلی
چاپ میشود.
مدیریت ورودیهای غیرمعتبر
در هنگام دریافت ورودی از کاربر، ممکن است ورودی نامعتبر دریافت کنید. برای مدیریت این موارد میتوانید از دستورات شرطی و حلقهها استفاده کنید.
مثال:
توضیح:
- خط اول: یک حلقه ایجاد میکند که تا زمانی که ورودی معتبر دریافت نشود، ادامه دارد.
- خط چهارم: از یک عبارت منظم برای بررسی اینکه آیا ورودی فقط شامل ارقام است استفاده میکند.
- خط ششم: در صورت معتبر بودن ورودی، حلقه متوقف میشود.
- خط هشتم: پیام خطا برای ورودی نامعتبر چاپ میشود.
در این مقاله، روشهای مختلف دریافت ورودی در Ruby را بررسی کردیم، از جمله دریافت ورودی از کاربر با gets
، خواندن داده از فایل، کار با آرگومانهای خط فرمان، و مدیریت ورودیهای نامعتبر. با تمرین و استفاده از این مفاهیم، میتوانید برنامههایی تعاملی و پویا بنویسید که نیازهای کاربران را به بهترین شکل برآورده کند.
منابع
- مستندات رسمی Ruby
- کتاب Programming Ruby (ویرایش چهارم)
آیا این مطلب برای شما مفید بود ؟