delete_if 方法在 Ruby 中是如何工作的?

dan*_*nxo 2 ruby

为什么在这段代码之后的输出是:[9.5]?我的意思是 .. 为什么 delete_if 方法甚至从我的数组中删除了我的 'a'?

x = [1, 2, 3, 'a', 9.5]

x.delete_if{ |elem| elem.to_i <= 3}

p x
Run Code Online (Sandbox Code Playgroud)

Urs*_*sus 5

这不是关于delete_if,它是关于to_i

'a'.to_i
 => 0 
Run Code Online (Sandbox Code Playgroud)

to_i让你0在这些案件中,它不知道如何使你的对象整数