版本号中的~/^

版本号
1.2.0
major.minor.patch

版本号分为major,minor,patch。分别对应第一,二,三位。

~

~的意思是:

如果有minor,则patch可以变,minor不能变。
如果没有minor,则minor,patch可变,major不能变。

minor是大腕。

伪代码表示如下:
if (has minor) { // 左开右闭,patch可变 return [major.minor.patch, major.(minor+1).0) } else { return [major.minor.patch, (major+1).minor.0) } 

比如:

~1.2.0   ===> 1.2.0 <= x < 1.3.0 ~1.3 ===> 1.3.0 <= x < 1.4.0 ~2 ===> 2.0.0 <= x < 3.0.0 
^
表示左边第一位非0的版本号不变,其他可变。

例子:

major非0     ^1.2.2      ===> 1.2.2 <= x < 2.0.0 minor非0 ^0.1.2 ===> 0.1.2 <= x < 0.2.0 patch非0 ^0.0.1 ===> 0.0.1 <= x < 0.0.2 

但是,如果没有patch,patch会默认是0,并且可变,即使major,min都是0。

^0.0 := >=0.0.0 <0.1.0 

如果minor,patch都没有,也会默认为0,并且可变,即使major也为0.

^1.x    ===> 1.0.0 <= x < 2.0.0 ^0.x ===> 0.0.0 <= x < 1.0.0


链接:https://www.jianshu.com/p/764fc2f098a3

猜你喜欢

转载自www.cnblogs.com/ygyy/p/12765182.html