美文网首页Rust
5.2 - 结构体 - 实例Demo

5.2 - 结构体 - 实例Demo

作者: 空乱木 | 来源:发表于2019-08-29 11:05 被阅读0次

原文链接:https://kaisery.github.io/trpl-zh-cn/ch05-02-example-structs.html

struct Rectangle {
    width: u32,
    height: u32,
}

fn main() {
    let rect1 = Rectangle { width: 30, height: 50 };

    println!(
        "The area of the rectangle is {} square pixels.",
        area(&rect1)
    );
}

fn area(rectangle: &Rectangle) -> u32 {
    rectangle.width * rectangle.height
}

希望借用结构体而不是获取它的所有权,这样 main 函数就可以保持 rect1 的所有权并继续使用它,所以这就是为什么在函数签名和调用的地方会有 &

示例 5-12:增加注解来派生 Debug trait,并使用调试格式打印 Rectangle 实例

Rust 确实 包含了打印出调试信息的功能,不过我们必须为结构体显式选择这个功能。为此,在结构体定义之前加上 #[derive(Debug)] 注解

#[derive(Debug)]
struct Rectangle {
    width: u32,
    height: u32,
}

fn main() {
    let rect1 = Rectangle { width: 30, height: 50 };

    println!("rect1 is {:?}", rect1);
}

相关文章

  • 5.2 - 结构体 - 实例Demo

    原文链接:https://kaisery.github.io/trpl-zh-cn/ch05-02-example...

  • Go语言结构体存在的坑

    如果使用结构体嵌套在实例化的时候必须先实例化外层的结构体,然后在实例化内层的结构体

  • Go 学习笔记 08 | 结构体详解

    一、结构体 实例化结构体 第一种实例化结构体:var 变量 结构体 输出: 结构体首字母可以大写也可以小写,大写表...

  • Swift之方法

    1、实例方法实例方法属于特定类实例、结构体实例或者枚举实例的函数这里的方法其实就是函数,只不过放在类、结构体和枚举...

  • Linux字符设备注册

    结构体原型 结构体空间开辟 结构体空间初始化 操作方法集的结构体 机构体注册 字符设备移除 实例

  • C语言基础掌握之day6

    结构体,联合体,枚举与typedef 结构体 定义结构体和初始化 访问结构体成员:实例化变量.成员变量 如:m....

  • 为类、结构体以及枚举添加属性

    常量结构体实例的存储属性 如果你创建了一个结构体的实例并且把这个实例赋给常量,你不能修改这个实例的属性,即便是声明...

  • Go 面向对象编程

    struct 实例化方式 结构体语法糖 结构体是值类型 结构体 深拷贝和浅拷贝 即值传递和引用传递 匿名结构体 结...

  • 获取Class

    Class class本质是一个结构体的指针,结构体是objc_class,这个结构体中包含了: isa (实例-...

  • Swift学习笔记-属性

    存储属性只能用于类和结构体,计算属性可以用于类,结构体,枚举。 结构体的属性为var可变 但是如果结构体实例为le...

网友评论

    本文标题:5.2 - 结构体 - 实例Demo

    本文链接:https://www.haomeiwen.com/subject/pagbectx.html