Tập lệnh phải xác minh xem một IP được xác định trước có xuất hiện trong một mảng IP lớn hay không. Hiện nay tôi đang có chức năng như thế này (nói rằng "ip" là mảng của tôi về IP và "ip" là ip được xác định trước)Cách nhanh nhất để tìm một Chuỗi thành một mảng chuỗi
ips.each do |existsip|
if ip == existsip
puts "ip exists"
return 1
end
end
puts "ip doesn't exist"
return nil
Có cách nào nhanh hơn để làm điều tương tự?
Chỉnh sửa: Tôi có thể đã thể hiện sai chính mình. Tôi có thể làm array.include? nhưng điều tôi muốn biết là: array.include? phương pháp nào sẽ cho tôi kết quả nhanh nhất?
Sử dụng một Hash hoặc Set thay vì một mảng – Phrogz
đọc http://ruby-doc.org/core-1.9.3/Enumerable.html trước khi bất kỳ lập trình Ruby. – tokland
Bạn có thể sử dụng phương thức 'include?' Được định nghĩa trong lớp 'Mảng' để làm cho hoạt động này trông gọn hơn, tôi không chắc liệu nó có làm tăng tốc độ tra cứu nhiều –