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(),);
}

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iview碰到的一些问题总结

iview tabs嵌套使用问题 tabs嵌套使用的时候不是直接套用行了&#xff0c;直接套用会出现内层tab都集成到一级tab去&#xff0c;需要设置该属性指向对应 Tabs 的 name 字段(需要版本大于3.3.1) <Tabs name"tab1" ><TabPane label"标签1" tab&qu…

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson 16 At the Shoe Store 在鞋店

《美语从头学初级入门篇》 注意&#xff1a;被 删除线 划掉的不一定不正确&#xff0c;只是不是标准答案。 文章目录 Lesson 16 At the Shoe Store 在鞋店对话A对话B笔记会话A会话B替换 Lesson 16 At the Shoe Store 在鞋店 对话A A: Do you have these shoes in size 8? B:…

FL Studio All Plugins Edition2024中文完整版Win/Mac

FL Studio All Plugins Edition&#xff0c;常被誉为数字音频工作站&#xff08;DAW&#xff09;的佼佼者&#xff0c;是音乐制作人和声音工程师钟爱的工具。它集音频录制、编辑、混音以及MIDI制作为一体&#xff0c;为用户提供了从创作到最终作品输出的完整工作流程。这个版本…

第 1 章 微信小程序与云开发从入门到实践从零开始做小程序——开发认识微信小程序

小北的参考工具书 小程序开发的图书并不少&#xff0c;这本书仍然值得你拥有&#xff01; 首先&#xff0c;这是一本全栈小程序开发教程&#xff0c;循序渐进&#xff0c;由浅入深&#xff0c;介绍了小程序开发你想了解的方方面面&#xff0c;包括近其小程序开发的各种新技术应…

如何避免在绩效考核评分时“脸盲”

对于大型企业来说&#xff0c;如何保证在绩效考核评分时准确快速地回忆起员工的日常表现&#xff0c;已经成为困扰管理者的难题。由于大型企业员工数量众多且业务模块繁杂&#xff0c;公司领导很难对每个员工的工作情况都了如指掌。这导致在绩效考核评分时&#xff0c;公司领导…

利用R语言进行典型相关分析实战

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

Python爬虫实战:从API获取数据

引言 在现代软件开发中&#xff0c;API已经成为获取数据的主要方式之一。API允许不同的软件应用程序相互通信&#xff0c;共享数据和功能。在本文中&#xff0c;我们将学习如何使用Python从API获取数据&#xff0c;并探讨其在实际应用中的价值。 目录 引言 二、API基础知识 …

辽宁博学优晨教育视频剪辑培训探索学习新意义

在当今数字化快速发展的时代&#xff0c;视频已成为信息传达的重要载体。辽宁博学优晨教育视频剪辑培训应运而生&#xff0c;不仅为学员提供了专业的学习平台&#xff0c;更在探索学习的意义方面赋予了新的内涵。 视频剪辑作为现代媒体行业的重要技能&#xff0c;其学习意义不仅…

【计算机图形学】Where2Act: From Pixels to Actions for Articulated 3D Objects

文章目录 1.论文做了件什么事儿2. 论文为什么要做这件事3. 介绍Introduction4. 相关工作预测语义表达推理几何和物体属性从被动观察中学习Affordance从交互中学习感知 5. 问题陈述6. 方法6.1 网络模块主干特征提取器可运动性评分模块运动建议模块运动评分模块 6.2 训练数据收集…

编曲学习:高叠和弦 挂留和弦 和弦实战应用

高叠和弦 挂留和弦 和弦实战应用小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65d4826fe4b04c10a1310517?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 七和弦 以三和弦举例,三和弦上面叠一个三度的音,就变成了七和弦。 从下到…

消息中间件篇之Kafka-高可用机制

一、 集群模式 1. Kafka的服务器端由被称为Broker的服务进程构成&#xff0c;即一个Kafka集群由多个Broker组成。 2. 这样如果集群中某一台机器宕机&#xff0c;其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一。 二、分区备份机制 1. 一个…

英语四级,求职的必备项?【文章底部添加可得内推码汇总表】

目录 英语四级&#xff1a;求职的砝码 提升职业竞争力 国内外机会双丰收 系统备考英语四级 实际运用英语 强调英语四级证书 在当今全球化的职场中&#xff0c;英语四级证书愈发成为求职的必备项。它不仅仅是一张证书&#xff0c;更是通向更广阔职业世界的关键通行证。本文…

【自然语言处理四-从矩阵操作角度看 自注意self attention】

自然语言处理四-从矩阵操作角度看 自注意self attention 从矩阵角度看self attention获取Q K V矩阵注意力分数softmax注意力的输出再来分析整体的attention的矩阵操作过程从矩阵操作角度看&#xff0c;self attention如何解决问题的&#xff1f;W^q^ W^k^ W^v^这三个矩阵怎么获…

前后端分离nodejs+vue高校教材征订系统47nia

本教材管理网站是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了学生、教师和管理员这三者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可能优化…

Window系统本地搭建LightPicture网站并实现远程上传下载本地图片

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

leetcode 2867. 统计树中的合法路径数目【筛质数+贡献法】

原题链接&#xff1a;2867. 统计树中的合法路径数目 题目描述&#xff1a; 给你一棵 n 个节点的无向树&#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges &#xff0c;其中 edges[i] [ui, vi] 表示节点 ui 和 vi 在树中有一条边。 …

【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例

服务器数据恢复环境&#xff1a; 一台IBM某型号服务器上有16块FC硬盘组建RAID阵列。上层linux操作系统&#xff0c;ext3文件系统&#xff0c;部署有oracle数据库。 服务器故障&检测&#xff1a; 服务器上跑的业务突然崩溃&#xff0c;管理员发现服务器上有2块磁盘的指示灯…

PyQt6的开发流程(密码生成小程序为例)

PyQt6的开发流程&#xff08;密码生成小程序为例&#xff09; 文章目录 PyQt6的开发流程&#xff08;密码生成小程序为例&#xff09;一、流程介绍与概览1. 界面与逻辑分离的开发流程2. PyQt6的开发流程 二、打开 designer.exe 创建文件三、用QT设计师绘制界面保存成ui1. QT常用…

Android之UI Automator框架源码分析(第九篇:UiDevice获取UiAutomation对象的过程分析)

前言 通过UiDevice的构造方法&#xff0c;UiDevice对象持有的几个对象一部分是在构造方法中创建的&#xff08;初始化&#xff09;&#xff0c;它持有的每个对象都是分析的重点 备注&#xff1a;当前对象持有的对象&#xff0c;它的位置一般在实例变量创建时或者构造方法中&…

遇见您的私人法律顾问:智能法律大模型,智能解答您的法律困惑

遇见您的私人法律顾问&#xff1a;智能法律大模型&#xff0c;智能解答您的法律困惑 为了让法律服务深入到每个人的身边&#xff0c;让更多的人能够得到法律帮助&#xff0c;开启了【律知】这个项目, 致力于打造一系列引领法律智能化的大模型。AI 法律模型是一位虚拟法律顾问&…