【发布时间】:2023-02-23 03:06:59
【问题描述】:
我试图用一个函数返回指向其中一个类字段的指针,以便不创建对象的副本并能够在函数之外编辑它们。该字段是我创建的某个结构的向量,名称为packets。
我创建的函数如下,但IDE在编译前已经提示错误:
pub fn get_packets(&mut self) -> *Vec<point::Point>::const {
&self.packets
}
我一直在通过在返回类的开头和结尾添加const、mut或其他来检查,但目前没有好的结果。显然,我不知道自己在做什么,所以我请求一点帮助。
【问题讨论】:
-
1. 请阅读并发布您从编译器中得到的错误,虽然它的建议并不总是有用,但它的信息往往清晰明了。 2. 请贴出最少可复现的例子,stackoverflow 仍然不支付读心术等超能力,猜测很复杂。 3. 你在这里发布的小代码在语法上是无效的,你考虑过修复它吗?
*T不是有效的 Rust 类型,AFAIK 关联类型仅在特征上受支持,因为Vec是具体类型,这意味着Vec<T>::U也无效。 -
我能说的最好的是,您的 sn-p 应该类似于
pub fn get_packets(&self) -> &Vec<???> { &self.packets }或pub fn get_packets(&self) -> &[???] { &self.packets }。