首页 > 其他分享 >Rust 基础知识总结

Rust 基础知识总结

时间:2024-06-12 23:33:02浏览次数:23  
标签:总结 所有权 变量 基础知识 编译 引用 Copy Rust

一、所有权规则:

  1. Rust中的每一个值都有一个所有者(Owner);
  2. 值在任一时刻有且只有一个所有者;
  3. 当所有者(变量)离开作用域时,其对应的值被丢弃;

 

二、Move(转移)

  1. 原变量被赋值给其他变量以后,原变量不可用;编译时已知大小的类型除外;如整型;
  2. Copy trait; 如果一个值实现了Copy trait; 那么旧的变量在将其赋值给其他变量以后,仍然可用; 如 数字类型的变量;该规则,打破了所有权转移规则;
  3. 编译时已知大小的类型,都实现了Copy trait;
  4. 编译时已知大小的类型,其值存储在栈上;
  5. 编译时已知大小的类型,其值不会被Move;而是被Copy;故而原变量仍然可用;
  6. 编译时不确定大小的类型,其值存储在堆上;变量被赋给其它值后,原变量被不可用,被Move了;

 

三、所有权与函数

原理同变量赋值;

 

四、所有权与返回值

原来同变量赋值;

 

五、引用&与借用

  1. 引用不拥有值;故而,引用没有所有权;
  2. 将创建一个引用的行为称为借用(borrowing);
  3. 引用于可变引用与不可变引用
  4. 可以同时拥有多个不可变引用
  5. 只能有一个可变引用
  6. 有可变引用的同时,不能有不可变引用
  7. 悬垂引用,Rust 编译器确保不会有悬垂引用;因为当你拥有一个数据的引用时;编译器会确保数据不会在引用之前离开作用域;

 

六、slice

  1. slice 是一种不可变引用,故而其没有所有权;

标签:总结,所有权,变量,基础知识,编译,引用,Copy,Rust
From: https://www.cnblogs.com/ordili/p/18244938

相关文章

  • 个人学期总结(2024春)
    在回顾这个学期的学习和成长过程时,我不禁感到一些无奈。虽然这个学期内,我在课程中专注于学习安卓端开发应用、掌握javaweb框架的应用、熟悉数据库操作以及对C++的基本了解。我积极参与课堂讨论,认真完成作业,并在实践项目中努力将所学知识应用于实际情景中。通过这些努力,我感到自己......
  • 2024.6.12(个人总结)
    在软件工程专业的大二下半学期中,我经历了许多学习和成长的过程,积累了宝贵的经验和知识。在这个学期里,我学习了诸多关于软件工程的理论知识和实践技能,参与了各种项目和实践活动,不断提升自己的能力和水平。以下是对这个学期的个人总结:首先,在本学期的学习中,我深刻理解了软件工程的重......
  • BUAA OO 第四单元总结 + 课程总结
    第四单元课程着眼于UML语言,重点关注了类图、状态图、顺序图三种不同类型的图,分别从不同的视角展现代码架构设计与思考在本单元任务要求我们实现一个图书馆系统,能够实现对于学生的借阅、查询、预约、续借、捐赠等操作,该图书馆包括书架、预约处、借还处、漂流角等不同位置,图......
  • 小米充电头总结
    小米充电头总结小米67w版本1,65w充电头(满血):型号MDY-11-EB2,67w秒充版(满血):型号MDY-12-ES3,67w轻享版(残血):型号MDY-12-EF4,67w(残血):型号MDY-14-EV5,67w(残血):型号MDY-15-EQ6,67w1a1c(满血):型号MDY-14-EU7,67w小布丁版(残血):型号MDY-16-EJ,支持UFCS融合快充,但是很垃圾。8,67w小布丁大字......
  • [DP] DP优化总结
    写在前面$DP$,是每个信息学竞赛选手所必会的算法,而$DP$中状态的转移又显得尤为关键。本文主要从状态的设计和转移入手,利用各种方法对朴素$DP$的时间复杂度和空间复杂度进行优化与处理,以达到满足题目要求的目的;参考文献:动态规划算法的优化技巧毛子青c++DP总结《算......
  • 模拟赛总结
    一T1:小奇挖矿2因为只能走4步或7步,可以发现,当步数差\(\ge18\)时,一定能到达。而当步数差\(<18\)时,枚举出所有能到达的情况即可。#include<bits/stdc++.h>#definergregister#defineqwq0#defineintlonglongusingnamespacestd;constintN=1e5+3;intn,m;struc......
  • 苹果WWDC24一文总结,携手OpenAi,开启Ai新篇章
    北京时间6月11日凌晨1点,苹果2024年全球开发者大会(WWDC)正式开幕。按照往年惯例,每年的WWDC大会,苹果都会将重心放在对新版系统的介绍上,本次也不例外,苹果发布了包括iOS18、iPadOS18、macOS15以及visionOS2等在内的一系列软件更新。除了例行的系统更新,发布会的最重头大戏就是AI......
  • Java集合总结
    JAVA中常见的集合总结使用集合的好处:可以动态的保存任意多个对象,使用比较方便提供了一些列方便的操作对象的方法:add,remove,set,get等使用集合添加,删除元素的示意代码简洁明了集合主要分为两种:单列集合:集合中存放的是单个对象双列集合:集合中存放的是键值对对象C......
  • 【问题解决】java.util.jar.JarException: file:bcprov-jdk18on-1.78.jar is not sign
    现象启动程序报错,同时在classpath下有多个bcprov-jdk开头的包Causedby:java.util.jar.JarException:file:/C:/Users/93986/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk18on/1.78/619aafb92dc0b4c6cc4cf86c487ca48ee2d67a8e/bcprov-jdk18on-1.78.jaris......
  • 2024.06.04《个人总结》
      (大二下)课程总结——软件工程 1)回顾你的课程计划(第一周的计划),你完成的程度如何?请列出具体数据和实际例子。  1.你在这门课的计划是什么?参考一些学校的教学,你对这个课程有什么期待?你打算怎样度过这个课程?    计划就是尽力跟上建民老师的节奏同时,还能主动学习......