不能在两个不同文件中的同一个实现中调用私有方法

编程语言 2026-07-12

我正在尝试从 interrupt() 调用 irq(),这两个方法都属于同一个结构体 CPU。我从rust-analyzer收到以下错误:

function `irq` is private

a.rs

impl CPU {
    pub fn interrupt(&mut self) {
        self.irq();
    }
}

mod b;

b.rs

use super::CPU;

impl CPU {
    fn irq(&mut self) {
        // ...
    }
}

解决方案

fn irq 之前添加 pub(super)pub(in super::a)

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章