模块与包
使用第三方包--包导入导入是一种用来将其他包或其他包中的成员引入到当前程序中的机制。单导入 别名导入 全导入 批量导入导入名称冲突检查包声明--------包声明创建包和分发包写程序的人需要的包管理器,和管理系统的人需要的包管理器
Cangjie
在仓颉编程语言中包 package是编译的最小单元,每个包可以单独输出 AST 文件、静态库文件、动态库文件等产物.包由一个或多个源码文件组成,模块 module 是若干包的集合,是第三方开发者发布的最小单元###包声明 包声明以关键字 package 开头 包声明必须在源文件的非空非注释的首行仓颉有 4 种访问修饰符:private、internal、protected、public,pacakge 支持使用 internal、protected、public,默认修饰符为 public###包的导入包的导入隐式导入:隐式导入 core 包显示导入:使用 import 语句导入其它包中的声明或定义使用 import as 对导入的名字重命名
###其他 扩展概述 扩展可以为在当前 package 可见的类型(除函数、元组、接口)添加新功能
C++和C
cmake 除了用 find_package 引入依赖,就是 add_subdirectory编译成动态/静态库 make/autotools/cmakeSource
Python
module 包管理工具pip、conda
包引入import包分发
Rust
Rust 也提供了相应概念用于代码的组织管理项目(Packages)因此它包含有独立的 Cargo.toml 文件,以及因为功能性被组织在一起的一个或多个包工作空间(WorkSpace)包(Crate):一个由多个模块组成的树形结构Rust 而言,包是一个独立的可编译单元,它编译后会生成一个可执行文件或者一个库包只是一个编译单元 库包和二进制包模块(Module)mod 关键字来创建新模块可以使用 use 关键字把路径提前引入到当前作用域中,随后的调用就可以省略该路径