我將如何在 ruby?? 中寫這個“檢查某物是否為整數,如果不回傳 nil。否則將其除以 2 并回傳結果。我不明白如何讓它檢查它是否不是整數并回傳 nil。把它寫在一個函式中
def halve(x) x / 2 end
uj5u.com熱心網友回復:
在 Ruby 中,您可以使用instance_of?來檢查物件是否是給定類的實體,如果給定類是物件的類,或者給定類是否是物件的超類之一,則is_a?回傳。true
在 Ruby 中,首選多型性或鴨子型別,在此示例中,我認為其中一種方法也是一個不錯的選擇。恕我直言is_a?,比instance_of?Ruby 更慣用,但這取決于您的具體用例。
def halve(x)
if x.is_a?(Integer)
x / 2.0
else
nil
end
end
請注意,我更改x / 2為x / 2.0因為想象x = 3thenx / 2會回傳1但x / 2.0會回傳1.5。有關詳細資訊,請參閱的檔案Integer#/。
uj5u.com熱心網友回復:
def halve(x)
x.is_a?(Integer) ? x.fdiv(2) : nil
end
#is_a?(obj)如果傳遞的引數是該物件的類,則回傳 true。您也可以使用#kind_of?(obj).
#fdiv(n)回傳浮動。1.fdiv(2)將回傳 0.5(可能是您想要的)1 / 2,這與回傳 0 不同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/445019.html
