问题标签 [qualified-name]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3834 浏览

haskell - Haskell *qualified* 导入一组函数

在 Haskell 中,我可以导入一个由其名称或快捷方式名称限定的模块,如下所示:

我也可以只从模块中导入一组精选的函数,或者导入除了精选集以外的所有函数,如下所示:

是否可以像上面的示例一样导入一组特定的函数,import Data.List (sort, intersperse)但要确保这些函数仍然以合格的方式标识,例如List.sortand List.intersperse

虽然这不起作用,但这是我所要求的精神:

也许

0 投票
1 回答
2040 浏览

c++ - 使用 using 指令查找不明确的名称

不允许将命名空间和同名的类放在一个声明区域中,即

格式不正确(见 §3.3.1/4)。但是,可以通过 using-directive 引入任一名称:

这段代码格式不正确吗?VC++和Clang都这么认为

但是,GCC 接受它

谁是对的?

0 投票
1 回答
331 浏览

entity-framework - 如何在 EF 6 中限定实体

我的问题是我的网站使用 WebPages、Entity Framework 6.1.3、c# 和 SQL CE 数据库。我的“数据库优先”生成的实体类型之一与 system.TimeZone 类的名称完全相同,但智能感知和 IDE 没有正确拾取/处理名称冲突。

我的问题是如何在代码中完全限定实体名称(使用 EF 6.1.3,实体上下文)以防止名称与系统类发生冲突。

我有一个现有数据库表的 EF 实现。该表被命名为“TimeZones”。实体模型是使用数据库优先方法生成的。

EF 复数规则将表名转换为名为“TimeZone”的实体。

问题是,当我尝试更新我的“TimeZone”实体时,intellisense 认为我正在尝试更新“System.TimeZone”类,因为对我的新 TimeZOne 实例的所有点引用都是对 System.TimeZone 的属性和方法班级。我曾期望看到我的实体模型的 TimeZOne 实体的属性。

我希望能够使用命名空间完全限定我的 TimeZone 实体,或者在我的代码顶部的 using 语句中包含我的模型的命名空间。但是,EF 6.1.3 模型属性为我提供的“命名空间”似乎并不是真正的命名空间。EF 是从现有数据库生成的。

0 投票
1 回答
900 浏览

c++ - C++ 声明中的显式限定

当第一个声明被注释掉时,以下命名空间定义无法编译。如果未注释的第一个声明foo,那么它编译就好了。

标准中的相关部分(§8.3¶1)说:

当 declarator-id 合格时,该声明应引用先前声明的成员

我了解此规则会阻止将名称引入其他名称空间。我想知道是否可以放宽该规则以允许qualified-id引用当前命名空间。

0 投票
1 回答
152 浏览

node.js - 在 Node.js 中导入不合格的名称

在 Python 中,我可以将模块中的名称导入为合格的

或不合格

在 Node.js 中,我可以导入为合格的

有没有办法导入不合格的名称?

0 投票
2 回答
178 浏览

f# - 可以为区分联合类型设置默认值吗?

我实现了一个可区分的联合类型,用于选择一个函数:

这对我来说看起来不错,但编译器开始查看属于这个 DU 的所有实例,而不是SomeDU 。 NoneOption

我不想SomeOption.SomeNone替换我的所有代码Option.None

有没有办法告诉编译器不合格SomeNone实际上是Option.SomeOption.None

或者我应该给这些 DU 案例起不同的名字,比如AtLeastOneExactlyZero

0 投票
1 回答
41 浏览

python - TypeError 消息使用名称而不是 qualname

我发现以下行为:

我希望错误消息显示所__qualname__涉及的功能,而不仅仅是__name__. 在自己编写此类消息时,这也是推荐的做法。

我可以对此做些什么吗(例如启动时的配置)?或者这是一个错误/功能?

显示 qualname 将使调试更容易,尤其是在使用装饰器或 lambda 时。


蟒蛇 3.6.1

0 投票
2 回答
784 浏览

python-import - Python 中的合格导入

我正在寻找一种以合格方式从模块中导入某些方法的方法;例如(伪代码),

这可能吗?

这对于管理命名空间很有用,以免污染全局命名空间。此外,该方案在代码的任何部分都清楚地表明了方法/类的来源。我也可以使用import math,但是实际需要的方法(例如sqrt)将是隐式的。

0 投票
1 回答
187 浏览

c++ - 限定名称的重载解析

考虑这个函数调用:

11.3.1.1.1,第 3 段 [over.call.func] ( N4778 ) 涵盖了这种情况:

在非限定函数调用中,名称不由->or.运算符限定,并且具有更通用的primary-expression 形式。按照函数调用中名称查找的正常规则,在函数调用的上下文中查找名称...

在这里,foo::bar是一个不合格的名称,因为它没有被->or.限定。所以本段适用。现在,短语“在上下文中查找”的含义在 6.4 第 2 段 [basic.lookup] 中进行了解释:

“在表达式的上下文中查找”的名称在找到表达式的范围内被查找为非限定名称

但是, 是名称查找领域中foo::bar的限定名称。也就是说,这个组合的段落基本上就是说,限定名是按照非限定名查找规则来查找的。但是,我不认为不合格的名称查找能够递归地进入更窄的范围,即to 。这是缺陷吗?foo::barfoobar

0 投票
2 回答
524 浏览

python - 我可以使用 Sphinx 自动模块但在签名中删除模块名称吗?

我有一个mod带有一些子模块的模块submod并用于.. automodule:: mod.submod为其生成文档。

模块中元素(函数、类等)的签名现在显示限定名称,例如mod.submod.my_function(*args, **kwargs).

相反,我希望 Sphinx 只显示函数的名称,即签名my_function(*args, **kwargs)

我有什么方法可以删除签名中的主要模块和子模块吗?