Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails bundler gem悲观语义版本字符串~>;1.7.15_Ruby On Rails_Ruby_Rubygems_Semantics - Fatal编程技术网

Ruby on rails bundler gem悲观语义版本字符串~>;1.7.15

Ruby on rails bundler gem悲观语义版本字符串~>;1.7.15,ruby-on-rails,ruby,rubygems,semantics,Ruby On Rails,Ruby,Rubygems,Semantics,我注意到在ruby语义版本字符串中,对于悲观运算符,出现了一些意想不到的行为 我认为~>1.7.15应该同时满足1.7.20和1.7.2。但是我用Gem::Requirement进行了测试。通过?得到了满足,它说第一个是true,而第二个是false 与~>0.9.26和0.9.30和0.9.3相同 有人能解释一下为什么会这样吗?你对工作原理有误解 如果库的版本为1.7.0,并且作者在后续版本中不断增加补丁版本号,则库的版本增加如下: 1.7.0 1.7.1 1.7.2 1.7.3 ... 1.

我注意到在ruby语义版本字符串中,对于悲观运算符,出现了一些意想不到的行为

我认为
~>1.7.15
应该同时满足
1.7.20
1.7.2
。但是我用
Gem::Requirement进行了测试。通过?
得到了满足,它说第一个是
true
,而第二个是
false

~>0.9.26
0.9.30
0.9.3
相同


有人能解释一下为什么会这样吗?

你对工作原理有误解

如果库的版本为
1.7.0
,并且作者在后续版本中不断增加补丁版本号,则库的版本增加如下:

1.7.0
1.7.1
1.7.2
1.7.3
...
1.7.9
1.7.10
1.7.11
1.7.12
1.7.13
...
1.7.19
1.7.20
1.7.21
1.7.22
1.7.23
...
如果在某一点上次要版本号出现冲突,则下一版本将是
1.8.0

然后,如果在某一点上主版本号被碰撞,那么下一个版本将是
2.0.0


版本
0.9.26
0.9.30
之前,但在
0.9.3
之后

版本
0.9.30
和版本
0.9.3
不是一回事


版本是一个
字符串
,而不是数字。

太棒了。现在一切都搞定了。