Crates.io | module-publish |
lib.rs | module-publish |
version | 0.1.0 |
source | src |
created_at | 2022-07-12 05:15:27.514374 |
updated_at | 2022-07-12 05:15:27.514374 |
description | module publish test |
homepage | |
repository | |
max_upload_size | |
id | 624164 |
size | 4,443 |
mod可以同时用来声明文件内模块和文件外模块。
当mod直接在一个文件当中声明并定义内容时,就是文件内模块
mod math {
pub add(x:i32, y:i32) -> i32 {
x+y
}
}
这个时候,文件内声明并定义了,那么效果就是相当于 直接引入了这个模块,无需再另外声明mod math引入它,可以直接用math::add(1,2)
当一个模块背放到单独的文件当中的时候,这个时候模块的定义就被放到外边去了,所以我们需要在使用的文件中引入这个模块mod math;
,然后才可以使用math::add(1,2)
.
大多数时候,math可能是一个大模块,下面包含着各种子模块。所以math此时可以定义成一个文件夹,然后下面放着各种小模块,例如math/add.rs
。但是我们如何才能通过mod math
去引入math模块呢,因为现在math变成了文件夹而不是math.rs了。我们可以在math下添加一个mod.rs然后通过它集成所有小模块进来,这就相当于ts当中写一个math/index.ts
,然后集成其他的小模块一样。最后在需要使用的地方import math from 'math'
就会自动到math文件夹下找index.ts,这里就会自动寻找mod.rs。相当于引入了math模块。一个math大模块由多个小模块组成。