tilde大于(~>;)在Ruby gem依赖项中意味着什么?
在Ruby gem依赖的上下文中,tilde大于(~>;)在Ruby gem依赖项中意味着什么?,ruby,rubygems,Ruby,Rubygems,在Ruby gem依赖的上下文中,~>意味着什么 例如,当在RubyMine IDE中打开一个遗留项目时,我得到 信息 未附上项目所需的GEM: arel(~>2.0.2), rspec预期值(~>2.5.0)。。。 我在Ruby世界的其他地方看到过这种比符号更大的波浪形(它不是 特定于RubyMine)。此运算符是否具有除 发音笨拙的波浪号大于?表示“等于或大于最后一位数字”,例如~>2.3表示 “等于2.3或大于2.3,但小于3.0”,而~>2.3.0将 平均值“等于2.3.0或大于2.3.
~>
意味着什么
例如,当在RubyMine IDE中打开一个遗留项目时,我得到
信息
未附上项目所需的GEM:
arel(~>2.0.2),
rspec预期值(~>2.5.0)。。。
我在Ruby世界的其他地方看到过这种比符号更大的波浪形(它不是
特定于RubyMine)。此运算符是否具有除
发音笨拙的波浪号大于?表示“等于或大于最后一位数字”,例如~>2.3
表示
“等于2.3或大于2.3,但小于3.0”,而~>2.3.0
将
平均值“等于2.3.0或大于2.3.0,但小于2.4.0”
您可以将其发音为“大约大于”
它的意思是使任何较低版本等于或大于,但不是主要版本 例如,
arel(~>2.0.2)
,将使用(如果可用)版本
- 2.0.2
- 2.0.3
- 2.0。?(只要?大于等于2)
但据互联网报道,它不会使用2.1 如果RubyGem依赖项使用语法“~>1.4.37”,则表示“版本大于或等于1.4.37,但不是1.5或更高。” 换句话说,对你来说
arel
可以是2.1>版本>=2.0.2
和rspec expectation
可以是2.6>版本>=2.5.0
这意味着你期待的是一个版本为2.0.2或更高的gem,但在arel(~>2.0.2)
的情况下不是2.1,这是因为人们不应该在小的修改中发布破坏性的语法更改。因此,Arel2.0.3
预计将在2.0.2上修复bug/stability,谢谢你指出重复的地方。我已投票结束我的问题。我还对另一个问题的标题进行了编辑,添加了“tilde大于”这几个词来帮助文本搜索。我现在听说这个操作符被称为“twidle wakka”、“近似版本”和“悲观版本”()我称之为“蠕动火箭”,而不是“散列火箭”(=>
)。我最近听说它被称为“模糊匹配”另一个变体:“悲观版本控制运算符”大约大于!这很有道理-~
表示“大约”,而
表示“大于”。我一直认为~>
应该看起来像箭头,但我并不真正理解符号的特殊选择。。。突破。请注意,~>2
和~>2.0
的行为相同,两者都将产生一个与=2.0
和<3.0
匹配的版本
Gems required for project are not attached:
arel (~> 2.0.2),
rspec-expectation (~> 2.5.0)...