我對Ruby很陌生。抱歉,如果該主題已被涵蓋(我看到將 neg 切換為 pos 但不是相反)。
我在 Codewars 中輸入此內容,但收到一條錯誤訊息:
def make_negative(num)
if num <= 0 return num
else return num(*-1)
end
我究竟做錯了什么?
uj5u.com熱心網友回復:
具有單個分支的替代方案:abs plus unary minus
def make_negative(num)
-num.abs
end
uj5u.com熱心網友回復:
您缺少一個endforif...else塊。此外,num(*-1)引發錯誤是因為num不是接受引數的方法而是變數,并且*-1不是有效的 Ruby 運算式。
這應該有效:
def make_negative(num)
if num <= 0
return num
else
return num * -1
end
end
uj5u.com熱心網友回復:
這樣的事情應該沒問題:
def make_negative(num)
return num <= 0 ? num : num * -1
end
你有括號,(*-1)但你應該使用num * -1.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/478568.html
標籤:红宝石
上一篇:回傳哈希值等于的索引
