rust函数 stuct struct方法 关联函数

本文结合2个代码实例主要介绍了rust函数定义方法,struct结构体定义、struct方法及关联函数等相关基础知识。

代码1:
main.rc

#[derive(Debug)]

//定义一个结构体
struct Ellipse {
    max_semi_axis: u32,
    min_semi_axis: u32,
}

fn main() {
    //椭圆,结构体实例化
    let ell = Ellipse {
        max_semi_axis: 10,
        min_semi_axis: 8,
    };

    println!("{:#?}", ell);

    println!(
        "椭圆的长半轴={},椭圆的短半轴={},椭圆的面积={}",
        ell.max_semi_axis,
        ell.min_semi_axis,
        area(&ell)
    );
}


//计算椭圆的面积
fn area(ell:&Ellipse) -> f64 {
    3.14 * ell.max_semi_axis as f64 * ell.min_semi_axis as f64
}

运行如下:
在这里插入图片描述

代码2:
main.rc

#[derive(Debug)]

//定义一个结构体
struct Ellipse {
    max_semi_axis: u32,
    min_semi_axis: u32,
}

//struct方法
impl Ellipse {
    //计算椭圆的面积
    fn area(&self) -> f64 {
        3.14 * self.max_semi_axis as f64 * self.min_semi_axis as f64
    }

    //关联函数
    fn round(size: u32) -> Ellipse {
        Ellipse {
            max_semi_axis: size,
            min_semi_axis: size,
        }
    }
}

fn main() {
    //椭圆,结构体实例化
    let ell = Ellipse {
        max_semi_axis: 10,
        min_semi_axis: 8,
    };

    println!("{:#?}", ell);

    println!(
        "椭圆的长半轴={},椭圆的短半轴={},椭圆的面积={}",
        ell.max_semi_axis,
        ell.min_semi_axis,
        ell.area()
    );

    println!("-----------------------------------------");

    //圆,结构体实例化
    let r = Ellipse::round(15);

    println!("{:#?}", r);

    println!(
        "圆的长半轴={},圆的短半轴={},圆的面积={}",
        r.max_semi_axis,
        r.min_semi_axis,
        r.area()
    );
}

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


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据01-导论

零、文章目录 大数据01-导论 1、数据与数据分析 **数据:是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。**数据可以是连续的值,比如声音、图像,称为模拟数据;也可…

电阻器的脉冲浪涌能力?

由于现有需求,许多现代电子电路和设备都会经历瞬态脉冲和浪涌。这反过来又导致需要“设计”瞬态浪涌保护,尤其是在电机控制器等电路中。当电机启动时,此时消耗的电流过大,可能导致电阻器故障。同样,如果电容器用于电机…

2023-CVPR-Adjustment and Alignment for Unbiased Open Set Domain Adaptation

Adjustment and Alignment (ANNA) Front-Door Adjustment:类似二分类交叉熵,令概率接近1,以降低损失 Decoupled Causal Alignment:类似多分类交叉熵,令概率接近标签M

差异分析和PPI网路图绘制教程

写在前面 在原文中,作者获得285个DEG,在此推文中共获得601个DEG。小杜的猜想是标准化的水段不同的原因吧,或是其他的原因。此外,惊奇的发现发表医学类的文章在附件中都不提供相关的信息文件,如DEG数据、GO、KEGG富集信…

【教3妹学编程-算法题】N 叉树的前序遍历

2哥 : 叮铃铃,3妹,准备复工了啊,过年干嘛呢,是不是逛吃逛吃,有没有长胖呢。 3妹:切,不想上班,假期能不能重来一遍啊,虽然在家我妈张罗着要给我相亲呢。可是在家还是很好的…

Linux CentOS stream 9 安装docker

在计算机技术中,虑拟化是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。 目前,大多数服务器的容量的利用率不足15%,这导致服务器数量激增以及增加了复杂性。服务…

SG5032EEN晶体振荡器SPXO

5G将使通信流量呈指数级增长,5G通信网络需要高速和宽带,同时将噪声水平保持在最低水平,这可以通过通信设备的高频低抖动参考时钟来实现,使用上述晶体振荡器SPXO,客户可以输入一个具有极低相位抖动和功率的高频参考时钟…

《Go 简易速速上手小册》第3章:数据结构(2024 最新版)

文章目录 3.1 数组与切片:Go 语言的动态队伍3.1.1 基础知识讲解3.1.2 重点案例:动态成绩单功能描述实现代码扩展功能 3.1.3 拓展案例 1:数据分析功能描述实现代码扩展功能 3.1.4 拓展案例 2:日志过滤器功能描述实现代码扩展功能 3…

鸿蒙开发者预览版如何?

在24年的华为鸿蒙发布会中表示。预览版已经向开发者开放申请,首批支持的机型有三款分别为华为 Mate 60、华为Mate 60 Pro、华为Mate X5。 其HarmonyOS NEXT去除Linux内核以及AOSP代码,采用的鸿蒙内核以及代码,HarmonyOS NEXT系统仅支持鸿蒙内…

MySQL数据库基础(四):图形化开发工具DataGrip

文章目录 图形化开发工具DataGrip 一、DataGrip介绍 二、DataGrip安装 三、创建工程 四、连接数据库 五、选择要使用的数据库 六、DataGrip软件设置 1、设置字体大小 2、设置关键字大写 3、自动排版 图形化开发工具DataGrip 一、DataGrip介绍 DataGrip是JetBrains公…

用于图像处理的Python顶级库 !!

文章目录 前言 1、OpenCV 2、Scikit-Image 3、Scipy 4、Python Image Library(Pillow / PIL) 5、Matplotlib 6、SimpleITK 7、Numpy 8、Mahotas 前言 正如IDC所指出的,数字信息将飙升至175ZB,而这些信息中的巨大一部分是图片。数…

综合交易模型教程---qmt实盘链接,提供源代码

综合交易模型教程---qmt实盘链接,提供源代码 Original L1511732 数据分析与运用 2024-02-17 00:13 贵州 目前框架实盘全部完成了,后面写教程,每一个函数怎么样使用,怎么样开发自己的策略 模拟盘现在登录不了我直接实盘展示 后面…

FLUENT Meshing Watertight Geometry工作流入门 - 8 添加边界层网格

本视频中学到的内容: 如何使用 “添加边界层”任务生成边界层网格边界层网格在流体动力学中的重要性可用于添加边界层网格的方法以及所需的用户输入 视频链接: FLUENT Meshing入门教程-8添加边界层网格_哔哩哔哩_bilibili 流体动力学中边界层的概念及…

备战蓝桥杯---图论之最小生成树

首先,什么是最小生成树? 他就是无向图G中的所有生成树中树枝权值总和最小的。 如何求? 我们不妨采用以下的贪心策略: Prim算法(复杂度:(nm)logm): 我们对于把上述的点看成两个集…

SNMPv1/v2c-原理浅谈+报文示例+简易配置

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。 因此本文将在SNMP协议报文的基础上进行介绍。 SNMPv1版本相关RFC SNMPv2版本相关RFC 关于 Community-based SNMPv2 的基本原理&#xff…

docker部署Gogs安装

简介 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。 非docker下载 https://dl.gogs.io/ #根据需要的版本下…

jwt+redis实现登录认证

项目环境&#xff1a;spring boot项目 pom.xml引入jwt和redis <!-- jwt --><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>4.3.0</version></dependency><!-- redis坐标-->…

php数据类型以及运算符、判断条件

php数据类型以及运算符 1. php数据类型2. 使用举例3. 运算符4. 判断条件if else elseif 1. php数据类型 包括 String(字符串)、Integer(整型)、Float(浮点型)、Boolean(布尔型)、Array(数组)、Object(对象)、NULL(空值) 2. 使用举例 1.字符串 2.整型 3.浮点型 4.布尔型 5.数组…

Eclipse - Code Templates

Eclipse - Code Templates References Window -> Preferences -> C/C -> Code Style -> Code Templates 配置默认代码模板&#xff0c;可以点击 Export 将自己配置好的 Code Templates 导出去&#xff0c;以便备份和共享。 References [1] Yongqiang Cheng, https…

洛谷P5712 Apples 题解

#题外话&#xff08;第24篇题解&#xff09; #先看题目 题目链接https://www.luogu.com.cn/problem/P5712 #思路 就有几个注意的点&#xff1a; 1、注意“Today”后面有一个空格&#xff0c;我被坑过 2、如果输入的是0&#xff0c;输出不用加s 3、注意句点&#xff0c;我还…
最新文章