Có phương thức Ruby lấy chuỗi và giá trị mặc định và chuyển đổi thành số nguyên nếu chuỗi biểu thị số nguyên hoặc trả về giá trị mặc định khác không?Chuyển đổi chuỗi Ruby thành số nguyên với giá trị mặc định
cập nhật Tôi nghĩ câu trả lời sau đây là một lợi thế:
class String
def try_to_i(default = nil)
/^\d+$/ === self ? to_i : default
end
end
Đây là bằng chứng cho lý do tại sao bạn nên tránh trường hợp ngoại lệ:
> def time; t = Time.now; yield; Time.now - t end
> time { 1000000.times { |i| ('_' << i.to_s) =~ /\d+/ } }
=> 1.3491532
> time { 1000000.times { |i| Integer.new('_' << i.to_s) rescue nil } }
=> 27.190596426
Bạn có ý nghĩa gì bởi "chứa số nguyên"? –
'" tối ưu hóa sớm là gốc rễ của tất cả các điều ác "' - Donald Knuth – Reactormonk