উত্তর:
if
থেকে সরানif @item.rigged ? "Yes" : "No"
টার্নারি অপারেটরের ফর্ম রয়েছে condition ? if_true : if_false
s/that/not that
:)
রুবিতে শর্ত এবং অভিব্যক্তির then
অংশটি if
অবশ্যই একটি এক্সপ্রেশন বিভাজক (অর্থাত্ ;
একটি নতুন লাইন) বা মূলশব্দ দ্বারা পৃথক করতে হবে then
।
সুতরাং, এই সমস্ত কাজ করবে:
if @item.rigged then 'Yes' else 'No' end
if @item.rigged; 'Yes' else 'No' end
if @item.rigged
'Yes' else 'No' end
রুবিতে শর্তসাপেক্ষ অপারেটরও রয়েছে তবে এটি সম্পূর্ণ অপ্রয়োজনীয়। শর্তসাপেক্ষ অপারেটর, সি প্রয়োজন কারণ এটি একটি অপারেটর হয়: সি, if
একটি মান আর আসতে পারবেন না একটি বিবৃতি এবং এইভাবে, তাই আপনি যদি কোন মান ফিরিয়ে চান, আপনি কিছু যা ব্যবহার করতে হবে করতে একটি মান ফিরে। এবং সি এর কেবলমাত্র জিনিস যা কোনও মান ফেরত দিতে পারে সেগুলি হ'ল ফাংশন এবং অপারেটর এবং যেহেতু এটি if
সিতে কোনও ফাংশন করা অসম্ভব তাই আপনার একটি অপারেটরের প্রয়োজন।
রুবিতে তবে if
একটি অভিব্যক্তি। আসলে, রুবিতে সমস্ত কিছুই একটি অভিব্যক্তি, সুতরাং এটি ইতিমধ্যে একটি মান ফেরত দিতে পারে। এমনকি শর্তসাপেক্ষ অপারেটরটির অস্তিত্ব থাকার প্রয়োজন নেই , এটি ব্যবহার করতে দিন।
বিটিডাব্লু: এমন পদ্ধতিগুলির নাম দেওয়ার প্রচলন রয়েছে যা শেষে একটি প্রশ্ন চিহ্ন সহ প্রশ্ন জিজ্ঞাসা করার জন্য ব্যবহৃত হয়:
@item.rigged?
এটি রুবিতে শর্তসাপেক্ষ অপারেটর ব্যবহার করে অন্য একটি সমস্যা দেখায়:
@item.rigged? ? 'Yes' : 'No'
একে অপরের নিকটে থাকা একাধিক প্রশ্ন চিহ্ন সহ এটি পড়া সহজ।
একটি লাইন যদি:
<statement> if <condition>
আপনার ক্ষেত্রে:
"Yes" if @item.rigged
"No" if !@item.rigged # or: "No" unless @item.rigged
"No" unless @item.rigged
প্রতিরোধ!
nil
পরিবর্তে ফিরে আসে । শর্তটি পূরণ না করা হলে বিবৃতিগুলি যদি না ফেরায় তবে একক লাইন । 'Yes'
item.rigged
nil
আমি যা জানি তা থেকে
3 ওয়ান-লাইনার
a = 10 if <condition>
উদাহরণ:
a = 10 if true # a = 10
b = 10 if false # b = nil
a = 10 unless <condition>
উদাহরণ:
a = 10 unless false # a = 10
b = 10 unless true # b = nil
a = <condition> ? <a> : <b>
উদাহরণ:
a = true ? 10 : 100 # a = 10
a = false ? 10 : 100 # a = 100
আমি আসা করি এটা সাহায্য করবে.
শেল এবং সি উভয়ই এক-লাইন কাজ করে (রুবি ১.৯.৩.৪৪২৯):
# Shell format
irb(main):022:0> true && "Yes" || "No"
=> "Yes"
irb(main):023:0> false && "Yes" || "No"
=> "No"
# C format
irb(main):024:0> true ? "Yes" : "No"
=> "Yes"
irb(main):025:0> false ? "Yes" : "No"
=> "No"
অন্যথায় যদি শর্তটি টেরিনারি অপারেটর দিয়ে coveredেকে দেওয়া যায়
@item.rigged? ? 'Yes' : 'No'
তুমি ব্যবহার করতে পার ----
(@ আইটেম.রিগড)? "হ্যাঁ না"
যদি @ আইটেম.রিগড সত্য হয় তবে এটি 'হ্যাঁ' ফিরবে অন্যথায় এটি 'না' ফেরত আসবে