当前位置: 首页 > article >正文

Rust编程语言变量的所有权(ownership)

文章目录

      • 什么是所有权
      • 所有权规则
      • 转让所有权
        • 变量与数据交互的方式(一):移动
        • 变量与数据交互的方式(二):克隆
        • 只在栈上的数据:拷贝
      • 所有权与函数
      • 返回值与作用域
      • 引用和借用
      • 可变引用
      • 悬垂引用(Dangling References)
      • 引用的规则

在这里插入图片描述

什么是所有权

所有权ownership)是Rust 的核心功能之一。所有程序都必须管理其运行时使用计算机内存的方式。Rust 则选择通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。

所有权就是一个东西属不属于你,你有没有权力随意处理它,比如送人,比如扔掉。

Rust 语言中每一值都有一个对应的变量,这个变量就成为这个值的 所有者。从某些方面说,定义一个变量就是为这个变量和它存储的数据定义一种所有者管理,声明这个值由这个变量所有。

例如,对于 let age = 30 这条语句,相当于声明 30 这个值由变量 age 所有

所有权规则

首先,让我们看一下所有权的规则。当我们通过举例说明时,请谨记这些规则:


http://www.kler.cn/news/363901.html

相关文章:

  • MoCoOp: Mixture of Prompt Learning for Vision Language Models
  • 解锁PDF权限密码
  • vue-router3基本使用
  • Flutter 小技巧之 equatable 包解析以及宏编程解析
  • 基于opencv的人脸闭眼识别疲劳监测
  • 客户端工具xshell/finalshell连接Vagrant创建的虚拟机并上传本地文件
  • Web前端-JavaScript输入输出语法
  • APP综合应用之业务场景脚本测试任务(5)--多重继承与总结
  • mov 转 mp4
  • 信号与系统学习:傅里叶级数
  • HarmonyOS 最新API12 创建云端一体化项目(带图展示)
  • 基于stm32的楼宇照明控制系统设计
  • 代码解释(10.20)
  • Oracle 第2章:安装与配置Oracle
  • react18中在列表项中如何使用useRef来获取每项的dom对象
  • 博饼代码【Python】
  • WPF MVVM模式实现DataGrid编辑
  • vue2.x 的依赖收集通知更新
  • 【力扣 | SQL题 | 每日4题】力扣1164,3293,1308,1270
  • 【scene_manager_msgs】ROS2 自定义消息、服务的包
  • 动态规划:17.简单多状态 dp 问题_买卖股票的最佳时机III_C++
  • OpenCV高级图形用户界面(17)设置一个已经创建的滚动条的最小值函数setTrackbarMin()的使用
  • 七、高级查询和数据操作及数据完整性和约束
  • 基于Linux来讲解Kconfig的基础知识
  • 【2024版】sql-liabs靶场前十关解题过程和思路----适合入门小白
  • Appium环境搭建全流程(含软件)