Đó là pessimistic version constraint. RubyGems sẽ tăng số cuối cùng trong phiên bản được cung cấp và sử dụng cho đến khi nó đạt đến một phiên bản tối đa. Vì vậy, ~>0.8.5
là ngữ nghĩa tương đương với:
gem "cucumber", ">=0.8.5", "<0.9.0"
Cách đơn giản để suy nghĩ về nó là bạn đang okay với chữ số cuối cùng incrementing một số giá trị tùy ý, nhưng những người trước đó trong chuỗi không có thể lớn hơn những gì bạn cung cấp. Vì vậy, đối với ~>0.8.5
, bất kỳ giá trị nào đều được chấp nhận cho chữ số thứ ba (số 5) với điều kiện là nó lớn hơn hoặc bằng 5, nhưng giá trị 0,8 đầu tiên phải là "0,8".
Bạn có thể làm điều này, ví dụ, nếu bạn nghĩ rằng phiên bản 0.9 sẽ thực hiện một số thay đổi đột phá, nhưng bạn biết toàn bộ chuỗi phát hành 0.8.x chỉ là các sửa lỗi.
Tuy nhiên, chỉ cần sử dụng ">=0.8.5"
sẽ cho biết rằng bất kỳ phiên bản nào sau (hoặc bằng) 0.8.5 đều được chấp nhận. Không có giới hạn trên.
Xem thêm: [Ý nghĩa của '~>' trong yêu cầu phiên bản] (http://StackOverflow.Com/q/3414337/#3416289). –
'~>' đôi khi được gọi là "nhà điều hành tinh trùng". –
Bạn có thể chỉ định một phạm vi cho phiên bản Ruby trong Gemfile của bạn không? Ví dụ. 'ruby" ~> 2.0 "' – Dennis