Rust调用同级目录中的rs文件和调用下级目录中的rs文件

2024-02-28 23:52
文章标签 rs rust 调用 目录 同级 下级

本文主要是介绍Rust调用同级目录中的rs文件和调用下级目录中的rs文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Rust调用同级目录中的rs文件

Rust新建工程demo02,src文件夹下面新建test.rs文件,这样main.rs文件与它属于同级目录中。
在这里插入图片描述
关键点:导入test文件和test文件中的Ellipse模块

mod test;//导入test模块(文件)
use test::Ellipse;//使用test模块(文件)中的Ellipse模块

main.rs源文件

mod test;//导入test模块(文件)
use test::Ellipse;//使用test模块(文件)中的Ellipse模块fn main() {let mut ell=Ellipse::new();ell.set(10, 5);println!("{:#?}", ell);println!("椭圆的长半轴={},椭圆的短半轴={},椭圆的面积={}",ell.get_x(),ell.get_y(),ell.area(),);
}

test.rs源文件

#[derive(Debug)]
//定义一个结构体
pub struct Ellipse {max_semi_axis: u32,min_semi_axis: u32,
}impl Ellipse {//创建Ellipse对象pub fn new() -> Ellipse {Ellipse {max_semi_axis: 0,min_semi_axis: 0,}}//设置Ellipse其中元素值pub fn set(&mut self, max_x: u32, min_y: u32){self.max_semi_axis=max_x;self.min_semi_axis=min_y;}//获取Ellipse长半轴值pub fn get_x(&mut self) -> u32 {self.max_semi_axis}//获取Ellipse短半轴值pub fn get_y(&mut self) -> u32 {self.min_semi_axis}//计算椭圆的面积pub fn area(&mut self) -> f64 {3.14 * self.max_semi_axis as f64 * self.min_semi_axis as f64}
}

运行结果如下图所示:
在这里插入图片描述

二、Rust调用下级目录中的rs文件

Rust新建工程demo03,src文件夹下面新建shape目录,再在shape目录下新建ellipse.rs文件、rectangle.rs文件和mod.rs文件。

关键点:因为main.rs文件需要调用shape目录下的ellipse.rs文件、rectangle.rs文件,所以这是需要在shape目录下建立一个 mod.rs (Rust中的一个特殊文件) 用于模块的声明,就相当于声明shape这个目录下有哪些模块。
在这里插入图片描述
ellipse.rs源文件

#[derive(Debug)]
//定义一个椭圆结构体
pub struct Ellipse {max_semi_axis: u32,min_semi_axis: u32,
}impl Ellipse {//创建Ellipse对象pub fn new() -> Ellipse {Ellipse {max_semi_axis: 0,min_semi_axis: 0,}}//设置Ellipse其中元素值pub fn set(&mut self, max_x: u32, min_y: u32){self.max_semi_axis=max_x;self.min_semi_axis=min_y;}//获取Ellipse长半轴值pub fn get_x(&mut self) -> u32 {self.max_semi_axis}//获取Ellipse短半轴值pub fn get_y(&mut self) -> u32 {self.min_semi_axis}//计算椭圆的面积pub fn area(&mut self) -> f64 {3.14 * self.max_semi_axis as f64 * self.min_semi_axis as f64}
}

rectangle.rs源文件

#[derive(Debug)]
//定义一个长方形结构体
pub struct Rectangle {a: u32,b: u32,
}impl Rectangle {//创建Rectangle对象pub fn new() -> Rectangle {Rectangle {a: 0,b: 0,}}//设置Rectangle其中元素值pub fn set(&mut self, a: u32, b: u32){self.a=a;self.b=b;}//获取Rectangle边长apub fn get_a(&mut self) -> u32 {self.a}//获取Rectangle边长bpub fn get_b(&mut self) -> u32 {self.b}//计算长方形的面积pub fn area(&mut self) -> u32 {self.a * self.b}
}

mod.rs源文件(声明shape这个目录下有哪些模块。)

pub mod ellipse;
pub mod rectangle;

main.rs源文件

mod shape;//导入shape文件夹
use shape::ellipse::Ellipse;//使用shape文件夹下的ellipse文件中的Ellipse模块
use shape::rectangle::Rectangle;//使用shape文件夹下的rectangle文件中的Rectangle模块fn main() {let mut ell=Ellipse::new();ell.set(10, 5);println!("{:#?}", ell);println!("椭圆的长半轴={},椭圆的短半轴={},椭圆的面积={}",ell.get_x(),ell.get_y(),ell.area(),);println!("-------------------------------------------------------");let mut rect=Rectangle::new();rect.set(8, 3);println!("{:#?}", rect);println!("长方形的边长a={},长方形的边长b={},长方形的面积={}",rect.get_a(),rect.get_b(),rect.area(),);
}

运行结果如下图所示:
在这里插入图片描述


这篇关于Rust调用同级目录中的rs文件和调用下级目录中的rs文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757010

相关文章

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav