【Rust】相对路径

环境

  • Rust 1.56.1
  • VSCode 1.61.2

概念

参考:https://doc.rust-lang.org/stable/rust-by-example/mod/super.htmll

示例

superself 关键字可以使用在导入模块的时候,就不用指定绝对路径而是使用相对路径。

self

mod my {
    fn function() {
        println!("called `my::function()`");
    }

    mod cool {
        pub fn function() {
            println!("called `my::cool::function()`");
        }
    }

    pub fn indirect_call() {
        // 调用自己模块中的函数,和不写的结果一样。
        self::function();
        // 使用自己模块下面的模块,和不写的结果一样。
        self::cool::function();
    }
}

fn main() {
    my::indirect_call();
}

super

fn function() {
    println!("called `function()`");
}

mod cool {
    pub fn function() {
        println!("called `cool::function()`");
    }
}

mod my {

    pub fn indirect_call() {
        //  相对路径
        super::function();

        {
            // 绝对路径
            use crate::cool::function as root_function;
            root_function();
        }
    }
}

fn main() {
    my::indirect_call();
}

总结

了解了 Rust 中导入模块可以使用 superself 关键字来导入模块。

附录

posted @   jiangbo4444  阅读(521)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示