Ale*_*der 0 ruby methods reverse arguments
我在Ruby中有两种方法:
def reverse(first,second)
@items[first..second]=@items[first..second].reverse
end
Run Code Online (Sandbox Code Playgroud)
和:
def reverse
@items.reverse!
end
Run Code Online (Sandbox Code Playgroud)
我可以将这些功能组合成一个功能并使用一个if first.nil? && second.nil?条件,或者最好保持它的状态吗?
Ere*_*bih 11
第一个选项是使用默认值参数:
def reverse(first = nil, second = nil)
if first && second
@items[first..second]=@items[first..second].reverse
else
@items.reverse!
end
end
Run Code Online (Sandbox Code Playgroud)
第二个选项是使用可变数量的args:
def reverse(*args)
if args.length == 2
@items[args.first..args.last]=@items[args.first..args.last].reverse
else
@items.reverse!
end
end
Run Code Online (Sandbox Code Playgroud)