উত্তর:
and
হিসাবে একই &&
কিন্তু কম প্রাধান্য । তারা উভয়ই শর্ট সার্কিট মূল্যায়ন ব্যবহার করে ।
সতর্কতা: and
এমনকি =
আপনার সাধারণত এড়াতে চাইলে এর চেয়েও কম প্রাধান্য রয়েছে and
। and
" ডাবল রেন্ডার ত্রুটিগুলি এড়ানো " এর অধীনে রেল গাইডে কখন ব্যবহার করা উচিত তার একটি উদাহরণ পাওয়া যাবে ।
&&
, তবে and
কেবল খুব নির্দিষ্ট ক্ষেত্রে ব্যবহার করা উচিত।
and
একটি বিপরীত হিসাবে if
বিবৃতি পরিবর্তক: next if widget = widgets.pop
হয়ে widget = widgets.pop and next
যে এটি নির্বাণ একটি দুর্দান্ত উপায়, সত্যিই এটি তৈরি করা।" ক্লিক করুন "আমার মাথা (এবং। or
একটি বিপরীত মত হল unless
পরিবর্তক।)
ব্যবহারিক পার্থক্য হ'ল বাঁধাই শক্তি, যা আপনি যদি এটির জন্য প্রস্তুত না হন তবে অদ্ভুত আচরণের দিকে পরিচালিত করতে পারে:
foo = :foo
bar = nil
a = foo and bar
# => nil
a
# => :foo
a = foo && bar
# => nil
a
# => nil
a = (foo and bar)
# => nil
a
# => nil
(a = foo) && bar
# => nil
a
# => :foo
একই জিনিস ||
এবং জন্য কাজ করে or
।
a = foo and bar
এবং (a = foo ) && bar
প্রমাণ করে যে and
তুলনায় কম নজির আছে &&
।
a = foo and bar
সমতূল্য (a = :foo) and nil
। যেহেতু অ্যাসাইনমেন্টটি একটি যুক্তিযুক্ত সত্যের মান ( :foo
) প্রদান করে তারপরে দ্বিতীয় অংশটি মূল্যায়ন করে, যা ব্যর্থ হয়, ফিরে আসে nil
।
রুবি স্টাইল গাইড এটা ভাল বলেছেন আমি আর করতে পারে:
&& / || ব্যবহার করুন বুলিয়ান এক্সপ্রেশন এবং / অথবা নিয়ন্ত্রণ প্রবাহের জন্য। (থাম্বের বিধি: যদি আপনাকে বাইরের বন্ধনী ব্যবহার করতে হয় তবে আপনি ভুল অপারেটর ব্যবহার করছেন))
# boolean expression
if some_condition && some_other_condition
do_something
end
# control flow
document.saved? or document.save!
and
/ or
সম্পূর্ণরূপে বলছে এবং তাদের কোনও বক্তব্য থাকতে পারে। প্রায়শই নিয়ন্ত্রণ প্রবাহে তাদের ব্যবহার আরও স্পষ্টভাবে if
/ unless
অপারেটরদের সাথে যাইহোক লিখতে পারে (যেমন document.save! unless document.saved?
)
||
এবং &&
প্রোগ্রামিং ভাষাগুলিতে বুলিয়ান অপারেটরদের কাছ থেকে আপনি যে নজিরটি আশা করেন তার সাথে আবদ্ধ হন ( &&
খুব শক্তিশালী, ||
কিছুটা কম শক্তিশালী)।
and
এবং or
নিম্নতর প্রাধান্য আছে।
উদাহরণস্বরূপ, বিপরীতে ||
, or
এর চেয়ে কম অগ্রাধিকার রয়েছে =
:
> a = false || true
=> true
> a
=> true
> a = false or true
=> true
> a
=> false
অনুরূপভাবে, অসদৃশ &&
, and
এছাড়াও কম প্রাধান্য রয়েছে =
:
> a = true && false
=> false
> a
=> false
> a = true and false
=> false
> a
=> true
আরো কি, অসদৃশ এর &&
এবং ||
, and
এবং or
বাঁধাই করা সমান প্রাধান্য সঙ্গে
> !puts(1) || !puts(2) && !puts(3)
1
=> true
> !puts(1) or !puts(2) and !puts(3)
1
3
=> true
> !puts(1) or (!puts(2) and !puts(3))
1
=> true
দুর্বল-বাঁধাই and
এবং or
নিয়ন্ত্রণ-প্রবাহের উদ্দেশ্যে কার্যকর হতে পারে: দেখুন http://devblog.avdi.org/2010/08/02/ using- and - and -or-in- ruby/ ।
||
, or
এর চেয়ে কম অগ্রাধিকার রয়েছে =
" ... এখন এটি আরও অর্থবোধ করে, ধন্যবাদ!
and
তুলনায় কম নজির আছে &&
।
তবে একটি নিরস্তর ব্যবহারকারীর জন্য সমস্যাগুলি দেখা দিতে পারে যদি এটি অন্যান্য অপারেটরদের সাথে ব্যবহার করা হয় যাদের নজরে রয়েছে এর উদাহরণস্বরূপ, অ্যাসাইনমেন্ট অপারেটর:
def happy?() true; end
def know_it?() true; end
todo = happy? && know_it? ? "Clap your hands" : "Do Nothing"
todo
# => "Clap your hands"
todo = happy? and know_it? ? "Clap your hands" : "Do Nothing"
todo
# => true
and
নিম্নতর প্রাধান্য রয়েছে, বেশিরভাগ ক্ষেত্রে আমরা এটিকে নিয়ন্ত্রণ-প্রবাহ সংশোধক হিসাবে ব্যবহার করি if
:
next if widget = widgets.pop
হয়ে
widget = widgets.pop and next
এর জন্য or
:
raise "Not ready!" unless ready_to_rock?
হয়ে
ready_to_rock? or raise "Not ready!"
আমি ব্যবহার করতে পছন্দ করি if
তবে তা নয় and
, কারণ if
আরও বোধগম্য, তাই আমি কেবল উপেক্ষা করি and
এবং or
।
"পড়ুন ব্যাবহার" এবং "এবং" অথবা "রুবি মধ্যে আরও তথ্যের জন্য"।
আমি জানি না এটি রুবি অভিপ্রায় কিনা বা এটি কোনও বাগ থাকলে নীচে এই কোডটি ব্যবহার করে দেখুন। এই কোডটি রুবি সংস্করণ ২.২.১ এ চালিত হয়েছিল এবং এটি একটি লিনাক্স সিস্টেমে ছিল।
puts 1 > -1 and 257 < 256
# => false
puts 1 > -1 && 257 < 256
# => true
or
||
দেখুন ।