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

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


相关推荐

  1. Rust - 函数

    2024-02-18 13:36:03       44 阅读
  2. [初学rust] 07_rust函数

    2024-02-18 13:36:03       36 阅读
  3. Rust编程-函数式编程

    2024-02-18 13:36:03       29 阅读
  4. 关于类模板对象做函数参数的方法

    2024-02-18 13:36:03       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 13:36:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 13:36:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 13:36:03       87 阅读
  4. Python语言-面向对象

    2024-02-18 13:36:03       96 阅读

热门阅读

  1. React中hooks使用限制及保存函数组件状态

    2024-02-18 13:36:03       49 阅读
  2. Rust 学习笔记 - 流程控制 与 Range 类型

    2024-02-18 13:36:03       53 阅读
  3. AWS认证SAA-C03每日一题

    2024-02-18 13:36:03       42 阅读
  4. https 为什么安全

    2024-02-18 13:36:03       58 阅读
  5. CDF和PDF的比较

    2024-02-18 13:36:03       46 阅读
  6. MCU中断里使用软延时函数delay_ms(u16 x)问题探讨:

    2024-02-18 13:36:03       49 阅读
  7. 工作心得——css让元素居中的方法

    2024-02-18 13:36:03       54 阅读
  8. devc++ 使用 winsock 实现 UDP 广播

    2024-02-18 13:36:03       58 阅读