数组过滤不会改变 Crystal 中的数组
Array filtering does not change the array in Crystal
我得到了一个字符串数组,如果是真的,我想在其中做一个声明在我的数组中过滤掉这个字符串。
代码
module CrystalTest
files = ["path/to/file1.ext", "path/to/file2.ext", "path/to/file3.ext"]
files.reject do |file|
reject = true
reject
end
print files
end
在这种情况下,我希望结果为 Array files.size => 0
,因为我对每次迭代都设置了 reject true。但我一直收到 files => true
编辑: 添加了 fule 代码片段。
Array#reject
returns 一个 new,过滤数组。这意味着您要么需要像这样重新分配 files
变量:
files = files.reject do |file|
或使用 Array#reject!
,它就地修改数组,如下所示:
files.reject! do |file|
我得到了一个字符串数组,如果是真的,我想在其中做一个声明在我的数组中过滤掉这个字符串。
代码
module CrystalTest
files = ["path/to/file1.ext", "path/to/file2.ext", "path/to/file3.ext"]
files.reject do |file|
reject = true
reject
end
print files
end
在这种情况下,我希望结果为 Array files.size => 0
,因为我对每次迭代都设置了 reject true。但我一直收到 files => true
编辑: 添加了 fule 代码片段。
Array#reject
returns 一个 new,过滤数组。这意味着您要么需要像这样重新分配 files
变量:
files = files.reject do |file|
或使用 Array#reject!
,它就地修改数组,如下所示:
files.reject! do |file|