Tôi vừa mới bắt đầu học Ruby và Ruby on Rails và đã xem qua mã xác nhận có sử dụng các dãy:Sự khác biệt giữa '..' (dấu chấm kép) và '...' (dấu ba chấm) trong thế hệ dải?
validates_inclusion_of :age, :in => 21..99
validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21"
Lúc đầu, tôi nghĩ rằng sự khác biệt là trong sự bao gồm thiết bị đầu cuối, nhưng trong các tài liệu API Tôi nhìn vào , nó không có vẻ quan trọng cho dù đó là ..
hoặc ...
: nó luôn bao gồm các điểm cuối.
Tuy nhiên, tôi đã thực hiện một số thử nghiệm trong IRB và dường như chỉ ra rằng ..
bao gồm cả hai điểm cuối, trong khi ...
chỉ bao gồm giới hạn dưới nhưng không bao gồm giới hạn trên. Điều này có đúng không?
Tôi đã lập trình ruby được 8 năm và không bao giờ biết điều này. Cảm ơn! –
Ví dụ tốt hơn/ít khó hiểu hơn ví dụ trên: '(1..10) .include? 10 # => true' và '(1 ... 10) .bao gồm? 10 # => false' – timmcliu
@timmcliu Mặc dù không liên quan đến việc minh họa điểm mà '(a..b)! = (A ... (b + 1))' mặc dù biểu diễn mảng của chúng bằng nhau (khi a, b ∈ ℤ). Tôi đã cập nhật câu trả lời của mình một chút để mở rộng. –