Rust 双与号,&&

2024-04-24

我看到一些代码如下所示:

fn test <'a> (&'a mut &'a str) {}

我知道 'a 是一生,而 & 是引用。

但是我很难理解双重引用 && 。

根据我的理解,引用是一个指针,那么 && 是指向另一个指针还是其他指针的指针?


根据我的理解,引用是一个指针

是的,引用只是一个具有特殊借用检查语义的指针。指针和引用只是内存中的地址(有时还有尺寸 https://stackoverflow.com/q/57754901但这与这个答案无关),这意味着它们本质上有自己的价值,与它们“指向”或“引用”的价值分开。这就是为什么这样的代码可以工作:

fn main() {
    let num1 = 1;
    let num2 = 2;
    let mut num_ref = &num1;
    dbg!(num1, num2, num_ref); // num1 and num2 are 1 and 2 and num_ref is &1
    num_ref = &num2;
    dbg!(num1, num2, num_ref); // num1 and num2 are 1 and 2 and num_ref is &2
}

引用下的值不会更改,但引用本身会更改。

So, &mut &T是对不可变引用的可变引用,这意味着您可以更改可变引用下面的引用:

fn make_reference_one(r: &mut &i32) {
    *r = &1;
}

fn main() {
    let mut num_ref = &2;
    dbg!(num_ref); // is &2
    make_reference_one(&mut num_ref);
    dbg!(num_ref); // is now &1
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rust 双与号,&& 的相关文章

随机推荐

  • 使用 Spring Security 进行身份验证后如何基于角色进行重定向

    我使用 spring security spring hibernate 和 jsf 身份验证工作正常 但它总是将我重定向到页面 home jsf 我想在认证后管理用户的访问 我想在认证后管理用户的访问 如果权限 ROLE ADMIN 则重
  • 使用 CSS 转换延迟和 CSS 过滤器的 Safari 错误

    当用于转换 CSS 过滤器时 我遇到 CSS 转换延迟在 Safari 中无法正常工作的问题 它在 Chrome 中工作正常 但在 Safari 中 动画会在延迟时间过后再次发生 其他人以前见过这个或找到解决方法吗 提前致谢 https c
  • 在 Web 应用程序中何处以及如何使用拦截器?

    我最近对拦截器概念很感兴趣 我知道这个概念在 NHibernate Entity Framework 等许多库中都有使用 但我对如何在 ASP NET MVC Web 应用程序中使用这个概念感兴趣 在 Mvc Web 应用程序中什么地方有用
  • PHP 无法加载 php_curl.dll 扩展

    我昨天的帖子的后续 使用 PHP 启用 cURL https stackoverflow com questions 16403376 enabling curl with php 问题是 PHP 无法加载 php curl dll 我尝试
  • 使用 Amazon Web Services S3 与 Google Application Engine 进行存储的相对优势

    与 Google Application Engine 相比 您认为 Amazon Web Services S3 的优点和缺点是什么 在我询问时 两者的每 GB 成本大致相似 我没有看到任何关于服务质量的普遍投诉 所以我认为使用哪一个的决
  • 通过动态对象进行 Office 互操作的枚举值

    我在 Silverlight Ouf Of Browser 应用程序中使用 COM 互操作来实现 Word 自动化 这意味着我不能直接引用 COM 而是依赖于动态 现在我想调用以下方法 Range Collapse WdCollapseDi
  • 以编程方式将 Android 内容流式传输到电视

    我想要实现的是直播我的 Android 之一 游戏到电视 使用DLNA Wi Fi 直连联系 我能以某种方式做到这一点吗 我仍然想使用手机控制我的游戏 事实上 但我会在电视上实时看到我的游戏屏幕 有什么解决办法吗 Thanks 对于 And
  • 循环遍历日期范围内的所有月份?

    如果我有一个开始日期 比如说2009 02 01 和结束日期 比如2010 01 01 如何创建一个循环来遍历该范围内的所有日期 月份 Try start month strtotime 2009 02 01 end strtotime 2
  • Flux waitFor() 和异步操作,如何建模。

    我使用 pouchDB 作为应用程序的本地数据库 我想查询 PouchDB 的结果并将其加载到 React js 中 然而 即使我使用 waitFor 方法 PouchDB 查询的结果返回得太晚了 我想我不明白 waitFor 的用法是否正
  • 如何将 kotlin 协程与响应式 Spring 数据结合使用

    我正在尝试将一些项目从 Spring Reactor 迁移到 kotlin 协程 我有一些基于 spring webflux 的控制器 如下所示 RestController class Controller val productRepo
  • IIS 7.5 上的 ASP.NET MVC - 错误 403.14 禁止

    我正在使用 Visual Studio 2010 RC 运行 Windows 7 Ultimate 64 位 我最近决定让 VS 在 IIS 上运行 调试我的应用程序 而不是在它附带的开发服务器上 但是 每次我尝试运行 MVC 应用程序时
  • 如何在我的 Phonegap 应用程序中升级 Phonegap?

    我有一个 Phonegap 应用程序 是从早期版本的 Phonegap 启动的 我想将其升级到最新版本 我需要采取哪些步骤来升级它 我正在寻找一般答案 但我的具体情况是 Phonegap 1 1 0 gt 1 2 0 我今晚发现了这个 看起
  • 使用反应虚拟化和新的 CellMeasurer 实现动态行高

    我正在使用带有 Autosizer List 和 CellMeasurer 组件的 React Virtualized 9 当列表数据更改时 我需要更新行高 看来 自从版本 9 中支持 React Fiber 的更改以来 CellMeasu
  • “by viewModels()”Kotlin 属性委托未解析的引用

    我正在尝试用 kotlin 实现 viewmodel 首先我添加了所需的依赖项 implementation androidx appcompat appcompat 1 1 0 implementation androidx core c
  • 更改区域设置:强制活动重新加载资源?

    所以我的应用程序中有一个语言设置 切换语言时 我希望所有文本视图等立即更改语言 目前我只是更改配置中的区域设置 因此当用户重新启动活动时语言已更改 我的问题的一个丑陋的解决方案是让每个文本视图在每次更改语言时加载新资源 有更好的解决方案吗
  • git stash apply 和 git stash apply --index 有什么区别?

    每当我跑步时git stash apply and git stash apply index完成后git stash a即使我的 WIP 目录有暂存的更改 未暂存的 但跟踪的更改 和未跟踪的文件 我也会得到相同的结果 这是正常的吗 不应该
  • 将 XML 转换为带属性的 ruby​​ 哈希

    客观的 将 XML 转换为 ruby Hash 包含所有节点和属性值 我尝试了什么 xml
  • ASP.Net Core 回发后如何保持选项卡处于活动状态

    我有一个视图 其中包含一组选项卡 每个选项卡呈现不同的部分视图 阅读这些引导选项卡的文档和 W3Schools 示例后 我无法找到一种方法使活动选项卡在回发时保持活动状态 我见过的所有示例都使用旧版本的 Net 并且也不适用 这是我的代码
  • 类型错误:$.browser 未定义

    我正在使用 msdropdown 图像组合框来创建下拉选择选项 当我在我的电脑上本地运行此代码时 一切都运行良好 但是当我在 GoDaddy 服务器上运行它时 msdropdown 被禁用 它不适用于任何浏览器 Firebug 将错误显示为
  • Rust 双与号,&&

    我看到一些代码如下所示 fn test lt a gt a mut a str 我知道 a 是一生 而 是引用 但是我很难理解双重引用 根据我的理解 引用是一个指针 那么 是指向另一个指针还是其他指针的指针 根据我的理解 引用是一个指针 是