【发布时间】:2014-08-29 23:29:36
【问题描述】:
我很困惑为什么以下方法不起作用。
def array_mod(source_array, letter_to_delete)
source_array.delete_if {|x|
String===x && x.include?letter_to_delete }
end
基本上我有一个函数,它接受一个数组,为了测试目的,它将同时包含字符串和数字。第二个参数是一个字母。该函数应该遍历数组,跳过 Fixnum 值,并且 delete_if 元素是 a) 字符串和 b) 包含有问题的字母。我已经创建了这个函数,但正在尝试重构它以使其更专业。谢谢你们帮助我变得更好!
def array_mod(source_array, letter_to_delete)
return source_array.delete_if do |x|
if x.is_a?(Fixnum) ==true
next
else
x.include?letter_to_delete
end
end
end
【问题讨论】:
-
我听不懂
if x.is_a?(Fixnum) ==true这行。如果我是你,我会改成这样:if (x.is_a?(Fixnum) ==true)==true。只是要确定。呵呵..JK。你可以把它留到if x.is_a?(Fixnum)。
标签: ruby loops refactoring