当前位置: 首页 > news >正文

Rust 有问有答之 use 关键字

 

use 是什么#

use 是 Rust 编程语言的关键字。using 是 编程语言 C# 的关键字。

关键字是预定义的保留标识符,对编译器有特殊意义。

using 关键字有三个主要用途:

  • using 语句定义一个范围,在此范围的末尾将释放对象。

  • using 指令为命名空间创建别名,或导入在其他命名空间中定义的类型。

  • using static 指令导入单个类的成员。

use的用途是什么#

类比using,use的用途有:

  • 用于引用某个外部模块
  • 直接使用枚举值,而无需手动加上作用域
  • 为某个作用域下的方法或作用域创建别名

用于引用某个外部模块#

外部模块 a.rs,代码内容如下

mod a
{
	fn print_function()
	{
		println!("This is a.print_function.");
	}
}

主函数 main.rs 想要调用 print_function,需要对 mod 标识访问级别,使用关键字 pub。所以 a.rs 的内容变动如下

pub mod a
{
	fn print_function()
	{
		println!("This is a.print_function.");
	}
}

主函数 main.rs 调用 print_function 如下,使用关键字 use:

use a;

fn main()
{
	a::print_function();
}

直接使用枚举值,而无需手动加上作用域#

enum Status {
    Rich,
    Poor,
}

fn main()
{
    use Status::{Poor, Rich};
    let status = Poor;
}

上述代码使用关键字 use 显示声明了枚举 Status,所以在 let status = Poor; 这行代码中无需使用 Status::Poor 手动加上作用域的方式声明 Poor

当然如果枚举值过多时,可以使用 * 声明所有枚举值,即 use Status::*;

为某个作用域下的方法或作用域创建别名#

pub mod a 
{
    pub mod b
    {
        pub fn function()
        {
            println!("This is a::b::function");
        }

        pub fn other_funtion()
        {
            println!("This is a::b::other_funtion");
        }
    }
}

use a::b as ab;
use a::b::other_funtion as ab_funtion;

fn main()
{
    ab::function();
    ab::other_funtion();
    ab_funtion();
}

RUST 复制 全屏

如上述例子所示

use a::b as ab;使用关键字 use 为作用域创建别名。

use a::b::other_funtion as ab_funtion; 为方法 other_funtion 创建别名 ab_funtion 。

参考:

  • C# 关键字 | Microsoft Docs

  • using 语句 - C# 参考 | Microsoft Docs

  • using 静态指令 - C# 参考 | Microsoft Docs

  • using 指令 - C# 参考 | Microsoft Docs

  • use 声明 - 通过例子学 Rust

  • 使用 use - 通过例子学 Rust

  • 模块 module 和包 crate · RustPrimer

相关文章:

  • 《Python实战进阶》No.41: 使用 Streamlit 快速构建 ML 应用
  • python leetcode简单练习(2)
  • 如何免费阅读Medium文章?
  • mysql JSON_ARRAYAGG联合JSON_OBJECT使用
  • 第二章:NumPy进阶与数据处理
  • 机器学习基础概括
  • windows通用网线连接ubuntu实现ssh登录、桌面控制、文件共享【实操常见问题解决思路】
  • 本地Ollama+Spring AI alibaba智能客服(飞机票预定示例Demo)Mac版
  • Redis7——进阶篇(七)
  • datetime模块
  • ECharts 中轴的分类及常见使用场景
  • 【FreeRtos】随手记录想法和DeepSeek的交流
  • anaconda学习
  • vue 路由
  • 把doi直接插入word中,然后直接生成参考文献
  • 论文阅读:Dual Anchor Graph Fuzzy Clustering for Multiview Data
  • compareTo方法示例
  • git分支和标签
  • ①EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • K8s存储全解析:从临时存储到持久化解决方案的完整指南
  • 发票 网站建设 单位/企业网站建设的作用
  • 十堰网站设计0719web/在线培训系统app
  • 哪些网站可以做招商广告语/外链交易平台
  • 惠州市人民政府门户网站/网络广告推广方法
  • 微信网站建设口碑好/新闻热点大事件
  • 晋城做网站的公司/东莞哪种网站推广好