正在获取“缺少生命周期说明符”错误

问题描述 投票:2回答:2

这是我的代码:

use std::ptr;

struct Query<T>{
  data: T,
  prev: & Query<T>,
  next: & Query<T>,
}
impl<T> Query<T>{
  fn new(name: T) -> Query<T>{
    Query{
      data: name,
      prev: ptr::null(),
      next: ptr::null(),
    }
  }
}

我在引用&Query<T>时不断收到“缺少生命周期说明符”。如何解决此错误?

compiler-errors rust lifetime
2个回答
8
投票

首先,请注意&T / &mut T*const T / *mut T是Rust中不同类型的指针。前者称为“引用”,它们以各种方式(包括借用分析)进行静态检查,它们不能为null或指向某些无效对象。后者称为“原始指针”,主要用于抽象实现和FFI。

因此,写作


0
投票

这类信息将大大丰富https://doc.rust-lang.org/stable/rust-by-example/文档,也许是一个标题为“生锈的常见编程模式”的新部分,并列出了可以做什么,不能做什么...以及原因。

© www.soinside.com 2019 - 2024. All rights reserved.