I'm very new to Ruby. Apologies if this topic has already been covered (I see switching neg to pos but not the other way around).
I am entering this in Codewars but getting an error message:
def make_negative(num)
if num <= 0 return num
else return num(*-1)
end
What am I doing wrong?
CodePudding user response:
An alternative with a single branch: abs plus unary minus
def make_negative(num)
-num.abs
end
CodePudding user response:
You are missing an end for the if...else block. Furthermore, num(*-1) is raising an error because num isn't a method accepting arguments but a variable, and *-1 isn't a valid Ruby expression.
This should work:
def make_negative(num)
if num <= 0
return num
else
return num * -1
end
end
CodePudding user response:
Something like this should be fine:
def make_negative(num)
return num <= 0 ? num : num * -1
end
You have brackets around the (*-1) but you should be using num * -1.
