我正在尝试进行一些计算,并从中获取组和部门数组。但是如果我像这样返回[],[]它给出了错误,而如果我像[[],[]那样返回它它工作得很好,但在后面的情况下,3个数组将被初始化,我想避免这一点?有没有更好的方法来使用2数组本身?
def fetch_group_dept_values
if condition
[1,2,3,], [4,5]
else
[9,15], [10,11]
end
end
groups, departments = fetch_group_dept_values
如果我像
[[],[]]
一样返回它,它可以正常工作,但在后面的情况下,3个数组将被初始化,我想避免这一点?
这是不可避免的,因为一个方法只能返回一个单个对象。
因此,将对象包装在[...]
中是很好的:
def fetch_group_dept_values
if condition
[[1, 2, 3,], [4, 5]]
else
[[9, 15], [10, 11]]
end
end
创建一个(小的(额外数组的开销可以忽略不计。
但是,您可以通过生成值而不是返回值来避免外部数组:
def fetch_group_dept_values
if condition
yield [1, 2, 3,], [4, 5]
else
yield [9, 15], [10, 11]
end
end
并通过呼叫
fetch_group_dept_values do |groups, departments|
# ...
end
在前面使用回车,
def fetch_group_dept_values
if condition
return [1,2,3,], [4,5]
else
return [9,15], [10,11]
end
end
groups, departments = fetch_group_dept_values