Właśnie rozpoczął naukę Ruby i Ruby on Rails i natknąłem kod weryfikacyjny, który używa zakresach:Różnica między ".." (podwójna kropka) i "..." (potrójna kropka) w zakresie generowania?
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 była w włączenie punktów końcowych, ale w docs API Spojrzałem , nie miało to znaczenia, czy było to ..
lub ...
: zawsze zawierało punkty końcowe.
Jednakże, wykonałem kilka testów w irb i zdawało się wskazywać, że ..
zawiera oba punkty końcowe, podczas gdy ...
zawiera tylko dolną granicę, ale nie górną. Czy to jest poprawne?
Programowałem ruby przez 8 lat i nigdy o tym nie wiedziałem. Dzięki! –
Lepszy/mniej mylący przykład niż powyższy: '(1..10) .include? 10 # => true' i '(1 ... 10). Include? 10 # => false' – timmcliu
@timmcliu Chociaż nie ma znaczenia dla zilustrowania punktu, w którym '(a..b)! = (A ... (b + 1))' pomimo reprezentacji macierzy są równe (gdy a, b ∈ ℤ). Uaktualniłem moją odpowiedź, aby rozwinąć tę kwestię. –