【编程开发】Rust 语法速查 & 例子 - 代码组织

本系列是学习 Rust 的学习笔记,本编主要对 https://cheats.rs/ 的语法速查表进行翻译学习

将项目分割成更小的单元并最大限度地减少依赖关系。

示例说明
mod m {}定义一个模块,从 {} 内获取定义。
mod m;定义一个模块,从 m.rsm/mod.rs 获取定义。
a::b命名空间路径,指向 a 中的元素 bmodenum等)。
     ~~~~     ::b相对于 crate 根目录搜索 b
     ~~~~     crate::b相对于 crate 根目录搜索 b
     ~~~~     self::b相对于当前模块搜索 b
     ~~~~     super::b相对于父模块搜索 b
use a::b;在此作用域直接使用 b,不再需要 a
use a::{b, c};同上,但将 bc 引入作用域。
use a::b as x;b 引入作用域但命名为 x,类似 use std::error::Error as E
use a::b as _;匿名引入 b 到作用域中,用于具有冲突名称的特性。
use a::*;a 中引入所有内容,仅建议用于 a 是一些预导入
pub use a::b;a::b 引入作用域并从此处重新导出。
pub T如果父路径是公共的,则 T 也是公共的可见性
     ~~~~     pub(crate) T仅在当前 crate 中最多可见1。
     ~~~~     pub(super) T仅在父级中最多可见1。
     ~~~~     pub(self) T仅在当前模块中最多可见1(默认情况,与没有 pub 一样)。
     ~~~~     pub(in a::b) T仅在祖先 a::b 中最多可见1。
extern crate a;声明对外部crate的依赖关系。 🗑️ 只需在 '18 中使用 use a::b
extern "C" {}_声明_与外部依赖关系和 ABI(例如 "C")相关的内容,用于FFI
extern "C" fn f() {}定义将使用 ABI(例如 "C")导出到 FFI 的函数。

1 子模块中的项目始终可以访问任何项目,无论是否 pub

代码组织的简单示例:

  1. 定义模块mod):模块用于组织和管理代码,可以嵌套使用。示例:

    mod my_module {
        // 模块内部的代码
    }
    
  2. 模块路径:用于指定访问模块中元素的路径。示例:

    mod my_module {
        pub fn my_function() {
            println!("This is my function");
        }
    }
    
    // 使用模块中的函数
    fn main() {
        my_module::my_function();
    }
    
  3. 使用声明use):用于在作用域中直接使用模块中的元素,避免重复的限定路径。示例:

    mod my_module {
        pub fn my_function() {
            println!("This is my function");
        }
    }
    
    // 使用声明
    use my_module::my_function;
    
    fn main() {
        my_function();
    }
    
  4. 可见性修饰符pub):用于指定模块、函数、结构体等的可见性,控制其在其他模块中的可访问性。示例:

    pub mod my_module {
        pub fn my_function() {
            println!("This is my function");
        }
    }
    
    // 在其他模块中使用
    use my_module::my_function;
    
    fn main() {
        my_function();
    }
    
  5. 外部依赖声明extern crate):用于声明对外部 crate 的依赖关系,通常在 Rust 2018 版本后不再需要使用。示例:

    extern crate some_crate;
    
  6. 外部块extern "C"):用于声明与外部依赖的 ABI 相关的内容,通常在 FFI 中使用。示例:

    extern "C" {
        fn some_external_function();
    }
    
  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值