【Rust 知识点杂记】

1、self和Self

在Rust中,selfSelf 有不同的含义和用法,它们通常出现在结构体、枚举或实现(impl)块的上下文中。

  1. self:

    • self 是一个关键字,它代表方法调用时实例本身的引用。当在一个方法定义中使用 self 作为第一个参数时,它表示该方法是通过某个特定类型的实例调用来触发的。
    • self 可以带有不同的借用修饰符:
      • &self:借用实例的一个不可变引用。
      • &mut self:借用实例的一个可变引用。
      • self(没有借用符号):这意味着方法将获取实例的所有权,并且可能会消耗这个实例(例如,在析构函数中或者当需要转移所有权时)。
  2. Self:

    • Self 是一个类型占位符,代表当前实现块(impl)所针对的具体类型。当你不想明确写出类型名称时,可以使用 Self 来代替。
    • 这个关键字通常用于返回值类型或者是泛型上下文中,当你希望指代具体的类型但又不想重复写类型名的时候。
struct Point {x: f64,y: f64,
}impl Point {// 构造函数,返回 Self 类型的新实例fn new(x: f64, y: f64) -> Self {Point { x, y }}// 方法,接收不可变引用 selffn distance_from_origin(&self) -> f64 {(self.x.powi(2) + self.y.powi(2)).sqrt()}// 方法,接收可变引用 selffn move_by(&mut self, dx: f64, dy: f64) {self.x += dx;self.y += dy;}// 方法,接收所有权 selffn into_polar(self) -> (f64, f64) {let r = (self.x.powi(2) + self.y.powi(2)).sqrt();let theta = (self.y / self.x).atan();(r, theta)}
}

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

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

相关文章

【Vue学习】Vue 组件实例的生命周期(四个阶段,八个钩子)

一、为什么要理解生命周期? 理解生命周期就像是知道了一部电影的剧情走向,能让你在适当的时机做出反应。Vue 生命周期的钩子让你可以在不同的阶段插入你的逻辑,像是提前准备、后期清理或者在数据更新时做点事情。这种“精确控制”的能力会让你…

【Vue】<script setup>和 <script>区别是什么?在使用时的写法区别?

<script setup> 是 Vue 3 引入的一种新的脚本语法&#xff0c;它提供了一种更简洁和声明式的方式来编写组件逻辑。它是为了解决传统 <script> 标签在 Vue 单文件组件&#xff08;SFC&#xff09;中的一些局限性而设计的。 <script setup> 与 <script>…

Kotlin 数据类与密封类

Kotlin 数据类与密封类 引言 在 Kotlin 中&#xff0c;数据类和密封类是两种非常重要的类类型&#xff0c;它们各自具有独特的用途和优势。数据类主要用于存储数据&#xff0c;而密封类则用于表示受限的类层次结构。在本篇文章中&#xff0c;我们将深入探讨 Kotlin 中的数据类…

Linux之信号量

目录 信号量 信号量相关接口 创建信号量 初始化信号量 等待信号量&#xff0c;P操作 发布信号量&#xff0c;V操作 销毁信号量 基于信号量的环形队列下的生产者和消费者模型 环形队列 代码实现 上期我们学习了线程同步的概念&#xff0c;掌握了基于阻塞队列的生产…

【电子通识】PWM驱动让有刷直流电机恒流工作

电机的典型驱动方法包括电压驱动、电流驱动以及PWM驱动。本文将介绍采用PWM驱动方式的恒流工作。 首先介绍的是什么是PWM驱动的电机恒流工作&#xff0c;其次是PWM驱动电机恒流工作时电路的工作原理。 PWM驱动 当以恒定的电流驱动电机时&#xff0c;电机会怎样工作呢&#xff1…

非docker方式部署openwebui过程记录

之前一直用docker方式部署openwebui&#xff0c;结果这东西三天两头升级&#xff0c;我这一升级拉取docker镜像硬盘空间嗖嗖的占用&#xff0c;受不了&#xff0c;今天改成了直接部署&#xff0c;以下是部署过程记录。 一、停止及删除没用的docker镜像占用的硬盘空间 docker s…

[python3]Excel解析库-xlwings

xlwings 是一个强大的 Python 库&#xff0c;它允许你直接与 Microsoft Excel 进行交互。通过 xlwings&#xff0c;你可以轻松地在 Python 脚本或 Jupyter Notebook 中读取、写入和操作 Excel 文件&#xff0c;而无需手动打开 Excel 应用程序。此外&#xff0c;xlwings 还支持将…

Kafka 消费者专题

目录 消费者消费者组消费方式消费规则独立消费主题代码示例&#xff08;极简&#xff09;代码示例&#xff08;独立消费分区&#xff09; offset自动提交代码示例&#xff08;自动提交&#xff09;手动提交代码示例&#xff08;同步&#xff09;代码示例&#xff08;异步&#…

【游戏设计原理】47 - 超游戏思维

对于这条原理&#xff0c;我首先想到的是开放世界&#xff0c;或者探索性游戏&#xff0c;这是最能包容各类玩家的游戏类型。这类游戏定义了基本规则&#xff0c;玩家的可操作性很强。就像上图里的沙池一样&#xff0c;里面有滑梯&#xff0c;是规则性比较明确的&#xff0c;而…

奥迪TT MK1(初代奥迪TT、第一代奥迪TT)仪表盘故障/不精准/水温/剩余油量不准,如何修复、测试、复位?

故障现象 水温不准&#xff0c;冷启动就130℃汽油加满&#xff0c;指针依然在中间偏左的位置 如下图&#xff1a; 诊断过程 通过VAG KKL 409 USB OBD接口读取水温和油位数值正常&#xff0c;故判断是仪表指针马达损坏或需要重置指针位置 维修步骤 推荐选择CH340&#xff08;老…

Nginx——服务器端集群搭建与扩展模块(五/五)

目录 1.Nginx实现服务器端集群搭建1.1.Nginx 与 Tomcat 部署1.1.1.环境准备 (Tomcat)1.1.2.环境准备 (Nginx) 1.2.Nginx实现动静分离1.2.1.概述1.2.2.需求分析1.2.3.动静分离实现步骤 1.3.Nginx 实现 Tomcat 集群搭建1.4.Nginx 高可用解决方案1.4.1.概述1.4.2.Keepalived 介绍1…

轻量级通信协议 JSON-RPC 2.0 详解

目录 JSON-RPC 2.0 简介 请求对象 响应对象 通知 批量请求 错误码 使用场景 文档和版本控制 社区和支持 小结 参考资料 JSON-RPC 2.0 简介 JSON-RPC (JavaScript Object Notation - Remote Procedure Call) 是一种轻量级的远程过程调用协议&#xff0c;使用 JSON&am…

ffmpeg之h264格式转yuv

h264格式转yuv详细步骤 初始化FFmpeg库&#xff1a;通过av_register_all()来初始化必要的组件。打开输入文件并查找解码器&#xff1a;使用avformat_open_input和 avcodec_find_decoder 打开H.264文件&#xff0c;并查找视频流。分配并配置解码上下文&#xff1a;使用 avcodec…

创建VUE脚手架

1.输入 npm create vuelatest2.创建完成

vue3如何实现防抖?

第一 防抖就是我们设置一个调用时间&#xff0c;点击后设置时间开始倒计时&#xff0c;如果再次点击会重新倒计时 npm或yarn安装&#xff1a; npm install lodash <template><div click"debouncedInputHandler"><button>打印</button>…

JavaWeb开发(六)XML介绍

1. XML介绍 1.1. 什么是XML &#xff08;1&#xff09;XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种很像HTML的标记语言。   &#xff08;2&#xff09;XML 的设计宗旨是传输数据(目前主要是作为配置文件)&#xff0c;而不是显示数据。   &#xff08;3&a…

用shell把(1到100)100个整数写入到二进制文件

author: hjjdebug date: 2025年 01月 05日 星期日 16:14:41 CST description: 用shell把(1到100)100个整数写入到二进制文件 1. 问题分析(需求分析) 在c语言下, 整数int 是按4个字节存储的,能表示最大0xffffffff的范围 但shell并没有一条命令能够实现把一个整数写入二进制文件…

SpringBoot下载文件的几种方式

小文件&#xff1a;直接将文件一次性读取到内存中&#xff0c;文件大可能会导致OOM GetMapping("/download1")public void download1(HttpServletResponse response) throws IOException {// 指定要下载的文件File file new File("C:\\Users\\syd\\Desktop\\do…

Flink使用

Window下启动支持 下载或复制老版本的放在bin目录下即可&#xff1b; flink.bat echo off setlocalSET bin%~dp0 SET FLINK_HOME%bin%.. SET FLINK_LIB_DIR%FLINK_HOME%\lib SET FLINK_PLUGINS_DIR%FLINK_HOME%\pluginsSET JVM_ARGS-Xmx512mSET FLINK_JM_CLASSPATH%FLINK_LI…

Python基础知识回顾-数据结构

Tuple 在 Python 中&#xff0c;我们经常使用 Tuple 来将相关数据分组。Tuple 指的是有序且不可变的元素集合。 形式&#xff1a;通常以逗号分隔的元素写在括号"() "中。 数据类型和索引&#xff1a;包含 String、整数和浮点数&#xff0c;并使用正索引和负索引访问…