为什么带有子模块和名称冲突的函数的模块可以工作?

2024-04-19

这是我想知道的代码:()

mod a {
    pub mod b {
        pub fn b() {
            println!("b");
        }
    }

    pub use self::b::b;
}

use a::b;

fn main() {
    b();
    b::b();
}

为什么b::b()工作?模块不应该吗b和函数b冲突?这是否意味着a::b不知何故既是模块又是函数?


模块不应该吗b和函数b冲突?

不,因为它们位于不同的命名空间中。他们以同样的方式发生冲突“重新c秩序”和“re英语中的“cord”冲突:它们的拼写和发音相同,但含义不同,您可以根据上下文分辨出哪个是哪个。

你不能调用模块,所以b()不能谈论模块。函数没有子项,所以b::b不能谈论一个功能。当您考虑诸如此类的事情时,这一点很重要struct S(i32);. S is both类型(结构类型本身)and一个函数(构造函数)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么带有子模块和名称冲突的函数的模块可以工作? 的相关文章

随机推荐

  • 使用elasticsearch按一天中的时间累积流量

    我正在接收来自大量客户端应用程序的请求 事件 我想使用elasticsearch 来找出我的最高流量点是什么时候 我尝试过的一件事是使用嵌套直方图进行过滤器聚合 然后使用嵌套的 术语 聚合 通过脚本字段获取一天中的不同时间 以下是我的尝试
  • 解析维基百科的出生和死亡日期?

    我正在尝试编写一个 python 程序 可以在维基百科中搜索人们的出生和死亡日期 例如 阿尔伯特 爱因斯坦出生于 1879 年 3 月 14 日 逝世日期 1955 年 4 月 18 日 我开始于使用 Python 获取维基百科文章 htt
  • Tuple 与 int[2] 内存使用情况

    有人知道这两者之间的内存差异吗 或者说 一个人自己如何轻松地弄清楚这一点 对于 32 位 CLR 两者都有 4 个字节用于锁 4 个字节用于类型句柄 8 个字节用于两个 int 然而 该数组将有额外的 4 个字节来存储长度 本例中为 2 个
  • Swift 处理数字真的很慢吗?

    当我在玩快速教程时 我开始编写一个自定义的isPrime方法来检查给定的Int是否是素数 写完后我发现它可以正常工作 但发现执行起来有点慢isPrime一些quite大量 仍然远低于Int max 所以我在 objc 中编写了同样的代码 代
  • 在 C# 4.0 中执行字符串

    我想在 C 中执行动态创建的字符串 我知道 VB 和 JScript Net 可以做到这一点 甚至还有一个way http odetocode com Code 80 aspx在 C 中使用其程序集作为解决方法 我也发现了这个article
  • 如何将 Angular Material 6 自动完成功能与数据服务器结合使用

    我正在使用 Angular 6 和 Material 6 开发一个简单的页面 我想使用 Material 的自动完成功能从服务中恢复数据 但我不知道如何做好 来自官方的例子https material angular io componen
  • 如何在 SQLite 中将毫秒转换为日期

    我将 Calendar getTimeInMilliseconds 中的日期存储在 SQLite DB 中 我需要在 SELECT 语句中按每个月标记第一行 因此我需要仅使用 SQLite 函数将时间 以毫秒为单位 转换为任何日期格式 我怎
  • 切换 C++ 函数的调用堆栈

    这是我的上一个问题 https stackoverflow com questions 1371547 explanation of asm code关于切换 C 调用堆栈 但是 C 使用不同的调用约定 thiscall 并且可能需要一些不
  • Javascript:删除最后一个字符(如果是冒号)

    Javascript 的相对新手 正在寻找一种方法来删除字符串的最后一个字符 如果它是冒号 I know myString myString replace 将适用于行的开头 但不知道如何交换 字符更改为行尾 任何人都可以纠正它吗 Than
  • R 中函数的运算符重载 - 奇怪的行为

    不幸的是像这样的事情 f g 3 其中 f 和 g 都是一元函数 在 R 中不起作用 因此 我尝试通过以下方式重载一元函数的 运算符 function function e1 e2 return function x e1 x e2 x 但
  • Git - 进一步重新合并

    合并与变基的主要缺点是合并会导致树混乱 如果 master 经常被更新 那么每次有重大更新时合并 mastery 将创建大量不必要的提交 现在 大多数时候 实际上没有任何必要 考虑存储库如下 Master A B C D E Branch
  • Gitlab代码审查批量评论?

    在Gitlab中进行代码审查时是否可以获取批量注释 与 Phabricator 类似 当审阅者对您的代码进行多条评论时 您只会收到一封电子邮件 我们正在尝试在工作中使用 Gitlab 但感觉每条评论的单独电子邮件都像垃圾邮件一样 Thank
  • 启动服务的小部件也会启动主要活动

    我有一个应该启动和停止服务的小部件 在不运行时启动它 在运行时停止它 这工作正常 但是 每次启动服务时 我的应用程序的主要活动也会启动 这是我不想要的 如果我删除 MAIN intent filter
  • 如何在 Laravel 4 中注册命名空间

    问题 PostController php 中第 4 行未找到类 PostRepostioryInterface 或者在修改命名空间时我什至得到了类 找不到应用 模型 接口 PostRepositoryInterface 问题 如何在 la
  • C# - 优雅的列表分区方式?

    我想通过指定每个分区中的元素数量将列表分区为列表列表 例如 假设我有列表 1 2 11 并且希望对其进行分区 使每个集合都有 4 个元素 最后一个集合填充尽可能多的元素 生成的分区将类似于 1 4 5 8 9 11 怎样写才是优雅的方式呢
  • 将通用列表转换为特定类型

    我有一个包含一些值的列表 Example List testData new List testData Add new List aaa bbb ccc testData Add new List ddd eee fff testData
  • 触发器 - 是否有必要 BEGIN / COMMIT TRAN

    我想像这样创建 INSTEAD OF 触发器 CREATE TRIGGER dbo DeleteCompany ON dbo Company INSTEAD OF DELETE AS DECLARE CompanyID int SELECT
  • FacebookRequest::execute() 未包含在 facebook sdk 中

    下载后facebook 的 php sdk https github com facebook facebook php sdk v4 archive 5 0 0 zip我试图运行下列的 https developers facebook
  • 类“属性”与“成员”与“变量”与“字段”的术语[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 似乎开发人员在引用存储在类实例中的数据时经常互换使用这些术语 每个术语之间是否存在技术差异 或者可以互换使用它们吗 根据不同的答案 类
  • 为什么带有子模块和名称冲突的函数的模块可以工作?

    这是我想知道的代码 mod a pub mod b pub fn b println b pub use self b b use a b fn main b b b 为什么b b 工作 模块不应该吗b和函数b冲突 这是否意味着a b不知何