To maintain the negative numbers, you can use uptoand downtowith the condition:
(I am showing here a standalone method instead of fixing it Integer)
def make_array(n)
if n > 0
0.upto(n).to_a
else
0.downto(n).to_a
end
end
, Enumerable#to_a.
, (), Array::new - :
n = 3
Array.new(n)
, , . , , :
Array.new(n) { |i| i }
, Array.new(n) n , n + 1, :
Array.new(n + 1) { |i| i }
, Array::new :
Array.new(-3)
, n -n, -i:
n = -3
Array.new(-n + 1) { |i| -i }
:
def make_array(n)
if n > 0
Array.new(n + 1) { |i| i }
else
Array.new(-n + 1) { |i| -i }
end
end
.
n abs:
3.abs
-3.abs
:
n = 3
Array.new(n.abs + 1) { |i| i }
n = -3
Array.new(n.abs + 1) { |i| i }
if:
n = 3
Array.new(n.abs + 1) { |i| n > 0 ? i : -i }
n = -3
Array.new(n.abs + 1) { |i| n > 0 ? i : -i }
, a <=> b. , a, b, -1, 0 +1 .
, Fixnum#<=>, n <=> 0 1, n , 0, -1, n 0:
3 <=> 0
-3 <=> 0
<=>, i :
Array.new(n.abs + 1) { |i| i * (n <=> 0) }
i * 1 (if n > 0) i * -1 ( n < 0).
( : n <=> 0 0, n 0, , [0] 0 * 0 0)
:
def make_array(n)
Array.new(n.abs + 1) { |i| i * (n <=> 0) }
end
, , , . (, upto downto) - .