rust cargo 依赖传递为何与 maven 不同?
在软件开发中,依赖传递至关重要,允许代码在不重复引入依赖关系的情况下引用其他模块。在 java 中,maven 依赖管理器实现了依赖传递,使得项目可以无缝访问依赖链中其他模块的代码。但是,rust 的 cargo 包管理器的工作方式不同。
在 rust 中,依赖传递是私有的,这意味着代码只能访问直接依赖中公开的内容。例如,如果 a 依赖于 b,而 b 又依赖于 c,则 a 直接依赖于 b,但不能直接引用 c。
以下代码说明了 rust 中的这种行为:
// 项目 a extern crate b; // 直接依赖于b fn main() { b::some_function(); // 可以调用b中的函数 c::some_function() // 报错:无法找到c }
登录后复制
为了解决这个问题,需要将 c 作为 a 的直接依赖,如下所示:
// 项目 A extern crate B; // 直接依赖于B extern crate C; // 直接依赖于C fn main() { B::some_function(); // 可以调用B中的函数 C::some_function(); // 可以调用C中的函数 }
登录后复制
以上就是Rust Cargo依赖传递和Maven有何不同?的详细内容,更多请关注php中文网其它相关文章!
Tags: ai
Article Links:https://www.hinyin.com/n/257012.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。