网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月30日
漏签
0
天
linux吧
关注:
494,266
贴子:
2,566,598
看贴
图片
吧主推荐
视频
游戏
22
回复贴,共
1
页
<<返回linux吧
>0< 加载中...
懂Rustlang的进
只看楼主
收藏
回复
deltax9k
----x-wx
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
萌新初玩Rust, 有一个小问题求教
以下是窝写的一段小代码, 编译报错:
提示如下:
如果把 第8行 放到 第5行 前面, 就可以编译通过。 这是为什么呢?
deltax9k
----x-wx
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看了下编译器的提示, 大致意思是 n 的作用域不够大, 为什么n的作用域一定要比 b 大才行呢?
那以后窝想给struct里面的引用赋值, 岂不是都必须早早的在 struct 前面就得声明这个变量, 就像这样, 总感觉哪里不对, 很不方便。
谢天谢地, 这个代码也能通过编译。
ps: 我用的最新 1.7 版的编译器。
到达未来(海南)元宇宙..
体验真人互动协作,Web3数字化生活,加入虚实相连的乌托邦世界——成为永久居民,了解区块链的应用
2025-03-30 18:28
广告
立即查看
deltax9k
----x-wx
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
基佬们去哪了
超级酱油男
----xr-x
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
rust太新,反正我没写过
我爱麻省理工
----xrwx
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
rust 的lifetime这个东西就是不让写这样的代码。
dangling pointer 很可怕哦
贴吧用户_05e758e
-------x
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
栈上的值类型析构时这样的顺序
A a;
B b;
...
~b();
~a();
类似于后进先出,题主的例子中
n 会先销毁,然后再销毁 b
但是 b 中的 foo 生命周期依赖 n 因此 b 又依赖 n
所以,n 的生命周期必须要比 b 长,所以 n 不能先于 b 销毁。
诚心来个
-------x
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如图,这个例子中,
b.foo = &n
但是当程序运行到b.foo=&n的下一行后
n被释放了,此时n不存在了,但是后面
又使用了println!宏输出b.foo,这就造成了
错误,即发生了dangling pointer,所以
n的作用域必须大于b的作用域
本人拙见,望海涵
邻家小娴_
----x---
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
强
熊猫办公
linux
,领先的AI写作工具,原创文档内容生成,完整内容,3分钟直接获取.
linux
,支持智能问答/文案写作/整理大纲/笔记记录/脚本策划等各种需求,免费体验!
2025-03-30 18:28
广告
立即查看
npqn1
----x---
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
去掉&试试
我爱麻省理工
----xrwx
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你们是会挖坟的
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示