Rust所有权

2023年 8月 13日 75.6k 0

  • 字符串字面值,在编译时就知道他的内容了,其文本内容直接被硬编码到最终的可执行文件里

    • 速度快,高效,是因为其不可变性。
  • String类型,为了支持可变性,需要在heap上分配内存来保存编译时未知的文本内容

    • 操作系统必须在运行时来请求内存,这步通过 String::from 来实现
  • 当用完String之后,需要使用某种方式将内存返回给操作系统

    • 这步,在拥有GC的语言中,GC会跟踪并处理不再使用的内存
    • 没有GC的语言中,就需要我们去识别内存何时不再使用,并调用代码将它返回
    • 如果没有做,就会内存浪费,如果提前做了,变量就会非法,必须一次分配,一次释放
  • rust采用了不同的方式,对于某个值来说,当拥有它的变量走出作用范围时,内存会立即自动的交还给操作系统。

  • 当变量走出作用域的时候,rust会自动调用drop这个函数。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论