Właśnie zacząłem uczyć się Ruby i Ruby on Rails i natknąłem się na kod walidacyjny, który używa zakresów:
validates_inclusion_of :age, :in => 21..99
validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21"
Na początku myślałem, że różnica polega na włączeniu punktów końcowych, ale w dokumentacji API, którą sprawdziłem, nie miało znaczenia, czy tak jest, ..czy ...: zawsze zawierał punkty końcowe.
Jednak przeprowadziłem kilka testów w irb i wydawało się, że wskazuje to na ..oba punkty końcowe, podczas gdy ...tylko dolną granicę, ale nie górną. Czy to jest poprawne?
(1..10).include? 10 #=> truei(1...10).include? 10 #=> false