রুবি প্রোগ্রামকে কিছুটা সময় অপেক্ষা করতে বলুন


417

কোডের পরবর্তী লাইনে যাওয়ার আগে আপনি কোনও রুবি প্রোগ্রামকে সময়মতো পরিমাণ অপেক্ষা করতে বলবেন?

উত্তর:


675

এটার মত:

sleep(num_secs)

num_secsমান একটি পূর্ণসংখ্যা বা ভাসা হতে পারে।

এছাড়াও, আপনি যদি এটি কোনও রেল অ্যাপ্লিকেশনটিতে লিখতে থাকেন বা আপনার প্রকল্পে অ্যাক্টিভসপোর্ট লাইব্রেরি অন্তর্ভুক্ত করেন, তবে আপনি নিম্নলিখিত সুবিধাযুক্ত বাক্য গঠন ব্যবহার করে দীর্ঘতর বিরতি তৈরি করতে পারেন:

sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second

121

ঘুমের মতো ব্যবহার করুন :

sleep 2

এটি 2 সেকেন্ডের জন্য ঘুমাবে।

যুক্তি দিতে সাবধান হন। আপনি যদি কেবল চালনা করেন sleepতবে প্রক্রিয়াটি চিরকালের জন্য ঘুমাবে। (আপনি যখন কোনও থ্রেডটি ঘুম না আসা পর্যন্ত ঘুমাতে চান এটি দরকারী))


3
অপেক্ষা করুন, এটি কি চিরকাল ঘুমাবে, বা এটি "জাগ্রত হওয়া" অবধি? "জাগ্রত" এর অর্থ কী?
মাইকেল ডারস্ট

4
@ অ্যানথ্রোপমোরফিক এটি যখন অন্য থ্রেডটি থ্রেডকে # রান বলবে তখন তা উল্লেখ করছে।
জোশুয়া পিন্টার

প্রকৃতপক্ষে, যখন অন্য কোনও থ্রেড থ্রেডকে # জাগ্রত কল করে, আমি মনে করি।
দাবাবু

2

আমি untilঘুম সহ খুব দরকারী। উদাহরণ:

> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true

এটি একই জিনিসsleep(10.seconds)
ড্যানিয়েলারিকোডস

হ্যাঁ, এখানে এটি একই কারণ এটি ঘুমের প্রস্তাব হিসাবে একই ইনপুট (সময়) ব্যবহার করে। আমি untilকোনও শর্ত না হওয়া অবধি ঘুমাতে কীভাবে ব্যবহার করা যেতে পারে তা হাইলাইট করতে চেয়েছিলাম (সিনট্যাক্সটি প্রাকৃতিকভাবে অনুভব করুন)
বরুণ গার্জ

1

sleep 66 সেকেন্ডের জন্য ঘুমাবে। দীর্ঘ সময়ের জন্য, আপনি ব্যবহার করতে পারেন sleep(6.minutes)বা sleep(6.hours)


4
এটিতে ডাউনভোটগুলি সম্পর্কে নিশ্চিত নয়, তবে এটি হতে পারে minutes()এবং hours()এটি রুবে অন রেল দ্বারা সংখ্যায়িত পদ্ধতিতে করা যেতে পারে - এটি অ্যাক্টিভসপোর্ট :: সময়কালীন শ্রেণিতে রুবিতে প্রমিত নয়। যদিও তারা বেশ সুবিধাজনক।
জোখেম শুলেনক্লাপ্পার

11
আমি মনে করি ডাউনভোটদের প্রাথমিক কারণটি হ'ল @vijaya_chowdary 8 বছর পরে মূলত ভোট দেওয়া সঠিক উত্তরটি পোস্ট করেছে। আমি এটিকে কমপক্ষে অদ্ভুত বলে বিবেচনা করব ...
স্টাহালরাট

1
আমি ঠিক এর জন্য ডাউনভোট করেছিলাম। এটি স্ট্যান্ডার্ড রুবি নয়।
হাইজেক

1

সেকেন্ড / মিনিট / ঘন্টা বাস্তবায়ন, যা রেল পদ্ধতি। নোট করুন যে অন্তর্নিহিত রিটার্নের প্রয়োজন হয় না তবে তারা আরও পরিষ্কার দেখায় তাই আমি তাদের পছন্দ করি। আমি নিশ্চিত নই যে রেলগুলির কাছেও .days আছে বা এটি আরও এগিয়ে যায় তবে এগুলি আমার প্রয়োজন।

class Integer
   def seconds
      return self
   end
   def minutes
      return self * 60
   end
   def hours
      return self * 3600
   end
   def days
      return self * 86400
   end
end

এর পরে, আপনি এটি করতে পারেন: sleep 5.seconds5 সেকেন্ডের জন্য ঘুমাতে। আপনি sleep 5.minutes5 মিনিটের জন্য ঘুমাতে পারেন । আপনি sleep 5.hours5 ঘন্টা ঘুমাতে পারেন । এবং অবশেষে, আপনি করতে পারেনsleep 5.days 5 দিনের জন্য ঘুমাতে পারেন ... আপনি নিজের যে মানটি (যে সময়সীমার মধ্যে সেকেন্ডের পরিমাণ) ফেরান এমন কোনও পদ্ধতি যুক্ত করতে পারেন। অনুশীলন হিসাবে, কয়েক মাস ধরে এটি প্রয়োগ করার চেষ্টা করুন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.