到目前为止,我已经看到三个......
[dependencies]
crate = "1.0.0" # I think this is an exact version match
crate = "^1.0.0" # I think this means "use that latest 1.x.x"
crate = "*" # I think this means "use the latest"
Run Code Online (Sandbox Code Playgroud)
我很想知道如何使用依赖列表.拥有一个记录依赖关系的不同语法的权威来源会很高兴.
我正在实现 Rust Cargo 版本要求。一般来说,我很难理解指定的插入符要求。我发现package.json 中的 tilde(~) 和 caret(^) 有什么区别?,但是这个问题是关于 npm 版本要求的,我不确定它是否与 Rust Cargo 版本要求相同。
\n在https://doc.rust-lang.org/cargo/reference/specifying-dependency.html#caret-requirements,我读到:
\n\n\nCaret 要求允许 SemVer 兼容更新到指定版本。如果新版本号不修改主要、次要、补丁分组中最左边的非零数字,则允许更新。在这种情况下,如果我们运行,如果是最新版本,
\ncargo update -p timecargo 应该将我们更新到版本,但不会将我们更新到。相反,如果我们将版本字符串指定为,则货物应该更新为(如果它是最新版本),而不是。该版本不被视为与任何其他版本兼容。0.1.130.1.z0.2.0^1.01.11.y2.00.0.x
\n\n以下是插入符要求及其允许的版本的更多示例:
\n
\nRun Code Online (Sandbox Code Playgroud)\n^1.2.3 := >=1.2.3, <2.0.0\n^1.2 := >=1.2.0, <2.0.0\n^1 := >=1.0.0, <2.0.0\n^0.2.3 := >=0.2.3, <0.3.0\n^0.2 := >=0.2.0, <0.3.0\n^0.0.3 := >=0.0.3, <0.0.4\n^0.0 := >=0.0.0, <0.1.0\n^0 := >=0.0.0, <1.0.0\n此兼容性约定与 SemVer 的不同之处在于它对待之前版本的方式
1.0.0。虽然 …