Dưới đây là hai khối đơn giản mà làm điều tương tự:Tại sao .index nhanh hơn .all?
a = (0..100).to_a
a.all? do |x|
!(x == 1000)
end
nil == a.index do |x|
x == 1000
end
Trừ rằng điều thứ hai là luôn nhanh hơn một chút. Tại sao?
user system total real
testing all 1.140000 0.000000 1.140000 ( 1.144535)
testing index 0.770000 0.000000 0.770000 ( 0.769195)
Thật sao? Với logic đó 'x! = 1000' nên nhanh? –
@LeeJarvis Được cung cấp rằng '! =' Được định nghĩa trong C trong một thuật toán tương tự như '==' được xác định, đó phải là dự đoán. – sawa
Thay đổi nó từ '! (X == 1000)' thành 'x! = 1000' không tạo ra sự khác biệt đáng kể. –