rust语言match模式匹配涉及转移所有权Error Case

embedded/2025/3/12 0:24:04/
rust">struct S{data:String,
}//注意:因为String默认是移动语义,从而决定结构体S也是移动语义,可采用(1)或(2)两种方法解决编译错误;关键思路:放弃获取结构体S的字段data的所有权,改为借用。fn process(s_ref:&S){//&S ,借用match *s_ref { //S , 值//(1) match s_ref { //&S , 借用//(2) S{ref data} => { //data:&String , 借用S{data} => { //出错点.println!("Data: {}",data);},// _ => {},}
}fn main(){let s = S{data:String::from("hello world"),};process(&s);
}

编译错误:

rust">   Compiling playground v0.0.1 (/playground)
error[E0507]: cannot move out of `s_ref.data` which is behind a shared reference--> src/main.rs:7:11|
7  |     match *s_ref { |           ^^^^^^
...
11 |         S{data} => {|           ----|           ||           data moved here|           move occurs because `data` has type `String`, which does not implement the `Copy` trait|
help: consider removing the dereference here|
7  -     match *s_ref { 
7  +     match s_ref { |For more information about this error, try `rustc --explain E0507`.
error: could not compile `playground` (bin "playground") due to 1 previous error

注意:个人水平有限,难免谬误,欢迎指正,仅做参考,抛砖引玉;怕日后遗忘,故随笔记录。


http://www.ppmy.cn/embedded/171882.html

相关文章

文件上传漏洞测试

upload-labs16关 源码: function isImage($filename){//需要开启php_exif模块$image_type exif_imagetype($filename);switch ($image_type) {case IMAGETYPE_GIF:return "gif";break;case IMAGETYPE_JPEG:return "jpg";break;case IMAGETYPE_PNG:retur…

mysql的binlog,redolog,undolog作用

binlog是MySQL的服务器层日志,用于主从复制和数据恢复。 redolog是InnoDB存储引擎的日志,确保事务的持久性,通过WAL机制。 undolog用于事务回滚和MVCC,保证原子性和一致性。 事务处理中的具体应用:比如崩溃恢复时如何利…

Octave3D 关卡设计插件

课程参考链接 这位大佬有在视频合集中有详细的讲解,个人体验过,感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…

大规模语言模型的涌现能力

【摘要】 本文探讨大语言模型中一个出人意料的现象——涌现能力。研究发现,某些能力在较小模型中不存在,但在较大模型中出现,这种现象无法仅通过小模型性能预测来解释。这可能意味着未来更大的模型会获得新的涌现能力。 1. 引言 近年来,语言模型彻底改变了自然语言处理(…

java2025年常见设计模式面试题

1. 请解释建造者模式(Builder Pattern)及其应用场景。 答案: 建造者模式用于创建一个复杂的对象,同时允许用户只通过指定复杂对象的类型和内容就能构建它们,隐藏了复杂的构建逻辑。 示例: public class C…

【前端】BOM DOM

两天更新完毕,建议关注收藏点赞 友情链接: HTML&CSS&LESS&Bootstrap&Emmet Axios & AJAX & Fetch BOM DOM 待整理 js2 Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM)。官方文档点击跳转 目录 BOMDOM…

抖音全案代运营公司-品融电商

抖音全案代运营公司-品融电商 引言 在当今数字化时代,电商行业竞争激烈,品牌如何在众多竞争对手中脱颖而出,成为每个企业面临的挑战。品融电商(PINKROON)作为中国领先的品牌化电商服务商,凭借其独特的全域…

正则表达式,idea,插件anyrule

​​​​package lx;import java.util.regex.Pattern;public class lxx {public static void main(String[] args) {//正则表达式//写一个电话号码的正则表达式String regex "1[3-9]\\d{9}";//第一个数字是1,第二个数字是3-9,后面跟着9个数字…