podfile中腰奋,會經(jīng)常遇到版本號的配置。"~"算是比較常見的抱怔,之前一直沒搞清楚它的含義劣坊。
版本號
1.2.0
major.minor.patch
版本號分為major,minor屈留,patch局冰。分別對應(yīng)第一,二灌危,三位康二。
~
~的意思是:
如果有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會默認(rèn)是0,并且可變哈踱,即使major荒适,min都是0。
^0.0 := >=0.0.0 <0.1.0
如果minor开镣,patch都沒有刀诬,也會默認(rèn)為0,并且可變邪财,即使major也為0.
^1.x ===> 1.0.0 <= x < 2.0.0
^0.x ===> 0.0.0 <= x < 1.0.0
詳細(xì)可查看https://cnpmjs.org/package/semver 的Tilde Ranges和Caret Ranges