关于这两个字符的含义,网上已经很多的文章进行过介绍了。但是,我觉得介绍的都比较官方你。
你用力去理解的话,也是可以理解的。
本篇文章不是对哪些介绍的再次赘述。只是提供一个比较简单直接的方法,帮助你去区分。

一、背景知识

一个扩展包的通常是这样的。

\www\wwwroot\web>php artisan --version
Laravel Framework 6.20.27

这里的laravel的版本是6.20.27。

6 表示主版本号
20 表示次版本号
27 表示修订号

二、^和~的功能

^和~的出现是为了对扩展包进行版本锁定的。它们的区别如下:

^表示锁定主版本号。
~表示锁定次版本号。

三、举例

我们假定这个扩展的主版本号6,中间的次版本号最大是99,末尾的修订号是999。

^6.20 表示版本的范围是6.20.0到6.99.999
~6.20 表示版本的范围是6.20.0到6.20.999

四、扩展

  1. 头部版本
    也就是主版本号。
    因为在正则中的^,一般都是表示匹配一个开始字符的位置。功能跟这个类似,可以类比理解。
  2. 中间版本
    也就是次版本号
    ~ 我们一般用来泛指一个有序数列,比如1~9。所以这个字符一般也就出现在中间部分。可以类比记录,表示对中间的操作。
    ————————————————
    版权声明:本文为CSDN博主「hxthon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013866352/article/details/117415531