通过例子学 rust 个人精简版 3-1

Rust学习:通过例子学Rust 官方文档:通过例子学Rust的个人笔记,陆续学习中,大佬别喷 阅读详情

3-1

自定义类型
Rust 自定义数据类型主要是通过下面这两个关键字来创建:

struct: 定义一个结构体(structure)
enum: 定义一个枚举类型(enumeration)

而常量(constant)可以通过 const 和 static 关键字来创建。
结构体
#[derive(Debug)]
struct Person {
    name: String,
    age: u8,
}

// 单元结构体
struct Unit;

// 元组结构体
struct Pair(i32, f32);

// 带有两个字段的结构体
struct Point {
    x: f32,
    y: f32,
}

// 结构体可以作为另一个结构体的字段
#[allow(dead_code)]
struct Rectangle {
    // 可以在空间中给定左上角和右下角在空间中的位置来指定矩形。
    top_left: Point,
    bottom_right: Point,
}

fn main() {
    // 使用简单的写法初始化字段,并创建结构体
    let name = String::from("Peter");
    let age = 27;
    let peter = Person { name, age };

    // 以 Debug 方式打印结构体
    println!("{:?}", peter);

    // 实例化结构体 `Point`
    let point: Point = Point { x: 10.3, y: 0.4 };

    // 访问 point 的字段
    println!("point coordinates: ({}, {})", point.x, point.y);

    // 使用结构体更新语法创建新的 point,
    // 这样可以用到之前的 point 的字段
    let bottom_right = Point { x: 5.2, ..point };

    // `bottom_right.y` 与 `point.y` 一样,因为这个字段就是从 `point` 中来的
    println!("second point: ({}, {})", bottom_right.x, bottom_right.y);

    // 使用 `let` 绑定来解构 point
    let Point { x: left_edge, y: top_edge } = point;

    let _rectangle = Rectangle {
        // 结构体的实例化也是一个表达式
        top_left: Point { x: left_edge, y: top_edge },
        bottom_right: bottom_right,
    };

    // 实例化一个单元结构体
    let _unit = Unit;

    // 实例化一个元组结构体
    let pair = Pair(1, 0.1);

    // 访问元组结构体的字段
    println!("pair contains {:?} and {:?}", pair.0, pair.1);

    // 解构一个元组结构体
    let Pair(integer, decimal) = pair;

    println!("pair contains {:?} and {:?}", integer, decimal);
}
要点1 : 元组结构体 单元结构体
要点2 : 结构体解构
要点3 : 结构体点字段访问法 元组结构体 与 元组访问法一样
要点4 : 在声明语法中 ..结构体 可以继承其他可以继承的字段内容 
// 动手试一试
struct Point {
    x: f32,
    y: f32,
}
struct Rectangle {
    top_left: Point,
    bottom_right: Point,
}
fn rect_area(rect: Rectangle) -> f32 {
    let Rectangle {
        top_left: Point { x: x1, y: y1 },
        bottom_right: Point { x: x2, y: y2 },
    } = rect;

    let width = (x2 - x1).abs(); // 取绝对值,确保宽度为正
    let height = (y2 - y1).abs(); // 取绝对值,确保高度为正

    width * height
}
// 动手试一试
struct Point {
    x: f32,
    y: f32,
}
struct Rectangle {
    top_left: Point,
    bottom_right: Point,
}
// 返回一个以给定点为左上角,边长为指定值的正方形 Rectangle
fn square(top_left: Point, side_length: f32) -> Rectangle {
    Rectangle {
        top_left: Point {
            x: top_left.x,
            y: top_left.y,
        },
        bottom_right: Point {
            x: top_left.x + side_length,
            y: top_left.y + side_length,
        },
    }
}
vue3+rust个人博客建站日记1-框架开发环境配置。 记录使用Vue3+Rust搭建个人博客网站 阅读详情

相关推荐

通过例子学Rust

中文版(Rust by Example)Rust社区官方翻译,翻译精准可靠,非常适合Rust入门学习,主要讲述Rust基本语法

通过例子学习Rust

通过例子学习rust,学习Rust的必看的官方文档之一

weixin_51487151的博客 1387

通过例子学rust 中文版 (rust team).pdf

通过例子学rust,用实例来训练自己

《通过例子学Rust》简介

《通过例子学 Rust》(Rust by Example)简介,本文仅为个人学习的记录和交流

klt2006116357的博客 515

TPRI-DMP平台介绍

TPRI-DMP为华能集团西安热工院自主产权的工业云PaaS平台,已经过13年的发展和迭代,其具备大规模能源电力行业生产应用软件开发和运行能力

ashou706的专栏 2272

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读)

本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。

weixin_28704565的博客 359

通过例子学 Rust 中文版

通过例子学Rust中文版

weixin_44169596的博客 410

squidpy 教程 1:在 AnnData 和 Squidpy 中导入空间数据

这些是 10x Genomics Visium 的 Space Ranger 输出提供的 keys,因此是第一个被采用的 keys。在这种情况下,我们假设空间坐标与像素具有相同的比例,因此我们将该值设置为 1。为此,我们将使用模拟数据集,并通过示例展示您应该注意的重要细节,以便利用 AnnData-Scanpy-Squidpy 生态系统的全部功能。并不是绝对必要的,但会节省您大量的输入,因为它是 Squidpy 和 Scanpy 的默认值。正如你所看到的,空间坐标被缩小了,图像被“放大”了。

🧑‍🎓 博士研究生在读 🔬 分享生物信息学、神经生物学方面的知识 💬 合作请在后台留言 2256

Rust By Example:通过实例学习Rust编程语言

**在线阅读**:[Rust By Example 在线版](https://doc.rust-lang.org/rust-by-example/)

gitblog_00959的博客 582

Android 蓝牙——概述(一)

Profiles (蓝牙应用规范),它从应用场景的角度为蓝牙技术的使用制定了不同的规范。这也是和大众日常生活接触最多的一部分。蓝牙支持很多Profiles:MAP:(MessageAccessProfile),短信访问协议,允许设备间的信息交换,短信。使用场景:智能车载中同步短信等信息。HFP:(Hands-free Profile),电话免提协议,让蓝牙设备(如蓝牙耳机/车机)可以控制电话,如接听、挂断、拒接等。

小旭的专栏 3492

43_AI短片实战第十六弹:AIGC补充特写镜头——首尾帧衔接与多图抽卡技巧

本文介绍了使用Templa AI平台生成"怪兽爬车"特写镜头并衔接"甩尾摔下"动作的完整流程。首先通过AI生成4张怪兽趴在车顶的特写画面,重点选择展示怪兽与车顶关系的构图(16:9比例)。然后将选定的首帧图与已有尾帧图输入AI,生成7秒左右的过渡视频,实现从"稳定趴车"到"开始摔落"的自然衔接。整个过程展示了单图抽卡策略、首尾帧选择标准,以及如何利用AI生成时间进行其他剪辑任务的并行处理方法。最终产出包括特写首帧图、过渡视频文件和更新后的剪辑项目。

Open 76

通过例子学 rust 个人精简版 2-2

【代码】通过例子学 rust 个人精简版 2-2。

BECOMEviolet的博客 506

innovus:ccopt_design流程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?spec文件可以只创建一次,无需多次创建。2)virtual balance阶段。3)Full Balancing阶段。4)Clock Routing阶段。1)clustering阶段。

m0_61544122的博客 2476

通过例子学 rust 个人精简版 2-1

【代码】通过例子学 rust 个人精简版 2-1。

BECOMEviolet的博客 461

深度学习论文: AnomalyDINO: Boosting Patch-based Few-shot Anomaly Detection with DINOv2

通过将DINOv2模型适应到一次性和少量异常检测中,并专注于工业应用少量异常检测。实验表明,这种方法不仅与现有技术相匹敌,甚至可以在许多设置中超越它们。我们提出的仅视觉方法AnomalyDINO基于补丁相似性,能够实现图像级别的异常预测和像素级别的异常分割。该方法在方法论上很简单,无需训练,因此不需要任何额外的数据进行微调或元学习。

mingo_敏 1904

博途PLC模糊PID控制(附SCL完整源代码)

操作人员根据对象的当前状态和以往的控制经验,用手动控制的方法给出适当的控制量,对被控对象进行控制。用电脑模拟操作人员手动控制的经验,对被控对象进行控制。用模糊数学的知识模仿人脑的思维方式,对模糊现象进行识别和判决,给出精确的控制量,对被控对象进行控制。与经典控制理论和现代控制理论相比,模糊控制的特点是不需要建立对象的精确模型。根据操作人员手动控制的经验,总结的完整控制规则,在根据系统当前的运行状态,经过模糊推理,模糊判决等运算,求出控制量,实现对被控对象的控制。......

RXXW_Dor的博客 8965

通过例子学 rust 个人精简版 3-2

【代码】通过例子学 rust 个人精简版 3-2。

BECOMEviolet的博客 326

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

通过例子学 rust 个人精简版 5-all

之前有提到过,没啥好说的。之前有提到过,没啥好说的。

BECOMEviolet的博客 575

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

通过例子学 rust 个人精简版 1-2

【代码】通过例子学 rust 个人精简版 1-2。

BECOMEviolet的博客 407

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

通过例子学 rust 个人精简版 1-1

【代码】通过例子学 rust 个人精简版 1-1。

BECOMEviolet的博客 968

【一起学Rust】Rust介绍与开发环境搭建

Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。对于现在网络来说,Rust 被广泛了解主要是由于两件事。一是安全性,Rust 语言因其并发安全性而深受众多开发者的喜爱,曾在多个榜单上获评最受欢迎编程语言。一是 Linux 内核将引入 Rust 。本篇你将知道为什么需要学习Rust,并且学会运行Rust的官方案例。...

专注Rust编程与技术分享,涵盖C++、Python等开发实战,新手友好,专注实战,助力编程成长。 12万+

掌握 Rust 编程利器:详解“通过例子学Rust中文版”开源项目

掌握 Rust 编程利器:详解“通过例子学Rust中文版”开源项目 去发现同类优质开源项目:https://gitcode.com/ 通过例子学Rust中文版带完整目录:项目核心功能/场景 通过实际案例学习 Rust 编程语言,全面掌握 Rust 语法与特性。 项目介绍 在众多编程语言中,Rust 以其安全性、并发性和实用性脱颖而出,成为开发者们的新宠。为了帮助更多 Rust 学习者深入理解这门语...

gitblog_06796的博客 702

《Rust编程指南:通过"通过例子学 Rust"中文版入门》

**项目名称**: Rust By Example 中文版([GitHub](https://github.com/rust-lang-cn/rust-by-example-cn)) **概述**: 此项目是 Rust 编程语言的官方教程《通过例子学 Rust》的中文翻译版,旨在帮助中文读者更好地理解和掌握 Rust 的核心概念和语法特性。它包含了丰富的可运行实例,覆盖了从基础类型、控制流、...

gitblog_01068的博客 492

通过例子学 rust 个人精简版 4-all

作用域 简单说 {} 内就是所属作用域。这个也没啥好说的, 就是 shadow。其余的和之前内容重复了。

BECOMEviolet的博客 393

【Rust自学】1.3. Rust Cargo

Cargo的介绍与基本操作

A Rookie in San Domenico School 2021

Rust 一门赋予每个人构建可靠且高效软件能力的语言

Rust 程序设计语言:一门赋予每个人构建可靠且高效软件能力的语言。

汉阳Hann's Home 8081
上一篇: 通过例子学 rust 个人精简版 2-2
下一篇: 通过例子学 rust 个人精简版 3-2
独好紫罗兰
博客等级 码龄5年 616粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值