问题标签 [ambiguity]

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 投票
1 回答
146 浏览

constructor - D中的模糊结构构造函数

我在理解如何处理 D 中构造函数的歧义时遇到了一些麻烦。

  • afvec具有数据值 2 和 8。
  • aivec具有数据值 5 和 3。

这意味着从语法中按预期afvec调用。this(float c)

但是aivec做了一个类似的任务aivec.a = 5

我对此进行推断,发现上述内容是合法的:分别aivec = mydta(5, 4);给出aivec值 5 和 4。

任何想法如何绕过这个隐式初始化,以便我可以访问我的构造函数:this(int c)

0 投票
0 回答
238 浏览

dijkstra - Dijkstra 的模棱两可程序示例

问候。Dijkstra 写道,即使是几行看似简单的代码也可能令人绝望地模棱两可。在至少一个我现在找不到可以挽救我生命的作品中,他给出了一个小示例程序来证明这种模棱两可。任何人都可以指出他的一篇论文,其中包括其中一个例子吗?

0 投票
3 回答
811 浏览

c++ - 在 SFINAE 上下文中区分不明确的成员请求错误和成员不存在错误?

编辑:发布了我自己的答案,保留了原始接受的答案......让我想到了别名。

编辑:我的问题是针对在 SFINAE(或其他)上下文中区分歧义与成员 var/func 存在的可能性。我的问题不是关于如何制作 has_member 模板,而是关于检测歧义与存在之间的区别

是否可以设置部分特化来区分何时以不明确的方式访问成员(派生类的两个基类都有成员)与成员是否存在(派生类的基类都没有成员) ? 只有在检测到歧义时才需要返回 true ,但如果根本没有成员,或者它只存在于一个类中,则不需要返回 true。这是我到目前为止所拥有的,对于歧义返回true(我想要的),对于只有一个具有成员的类(也是我想要的)返回false,但是如果两个类都没有成员(啊!)

所需用途:

0 投票
2 回答
4026 浏览

oracle - 为什么 Oracle 10g 不抱怨列歧义?

我正在使用 Oracle 10g (XE 10.2.0.1.0),发现一个我不理解的行为:

问题是我认为 Oracle 应该抱怨department_idwhere 子句中的歧义,因为它是 tableemployeesdepartments. 事实是在 Oracle 10g 中,它没有,结果表明它将 解释department_iddepartments. 但是,如果我注释掉第二个连接语句(上面的第 4 行),Oracle 会按预期抱怨“ORA-00918:列不明确定义”。

那么,有人可以帮助解释一下 Oracle 10g 中的歧义是如何定义的吗?或者这可能是 10g 中的错误?

顺便说一句:这些表是在 Oracle 10g 中捆绑的默认 HR 模式中定义的。

更新:刚刚找到一个相关的帖子: 为什么 Oracle SQL 神秘地解决了一个连接中的歧义,而在其他连接中却没有

0 投票
2 回答
724 浏览

whitespace - How to specify 'greedy identifiers with a space' in ANTLR?

Suppose we have the input that looks like the sequence of simple English statements, each on a separate line, like these:

Let's try parsing it with this grammar:

The number of different verbs is fixed, but what's interesting is that name that we are trying to match could have spaces in it - and verbs could potentially be parts of it, too! So the following input is valid:

So the question is: how do we define name so it is greedy just enough to eat spaces and words that we are usually treating as verbs, but is not super-greedy so that the verbs could still be matched by action rule?

My first attempt at solving this task was looking like this:

Unfortunately, this will not match 'Guy who always bets', since bets is not a WORD, but a different token, defined by a literal in bets rule. I wanted to get around that by creating a rule like keyword[String word], and making other rules match, say, keyword["bets"] instead of a literal, but that's where I got stuck. (I guess I could just list all my verbs as valid alternates to be a part of a name, but it just feels wrong.)

Here is what more: all the names are declared before they are used, so I can read them before I start parsing actions. And they can't be longer than MAX_NAME_LENGTH chars long. Can it be of any help here?

Maybe I'm doing it wrong, anyway. ANTLR gurus, can I hear from you?

0 投票
6 回答
59302 浏览

c# - 变量“MyException”已声明但从未使用

我需要清除此警告:

编译器告诉我:

变量“MyException”已声明但从未使用

我怎样才能解决这个问题。

0 投票
4 回答
13508 浏览

c# - 属性 getter 和具有一个参数的方法之间怎么会有歧义?

我不敢相信我以前从未遇到过这种情况,但为什么我会收到此代码的编译器错误?

这是错误消息:

'FooBar.IsValid' 和 'FooBar.IsValid(int)' 之间的歧义

为什么这是模棱两可的?

我认为它不应该模棱两可的原因有两个:

  1. 之后没有括号IsConfused
  2. 没有 int 参数IsConfused

歧义在哪里?

0 投票
1 回答
1538 浏览

c++ - 为什么即使给出了模板参数,ptr_fun 也会觉得这个模棱两可?

所以,这里有一些基本的代码来说明我的问题:

对于具有不同数量参数的函数,我们有 2 个重载。然后我尝试在函子中转换单参数版本。当然,我遇到了以下错误:

我知道我可以直接投射func并完成它,但它让我思考为什么这是模棱两可的?这两个版本std::ptr_fun的模板定义中都没有默认参数,我已经明确表示这两个模板参数是int.

事实上,如果我只是像这样在模板实例化期间做编译器本质上在做的事情:

它编译得很好,不知何故歧义消失了!任何人都知道为什么会这样?

0 投票
9 回答
10629 浏览

c# - C#接口方法歧义

考虑以下示例:

Percentage在上面的示例中,调用哪个属性之间存在歧义。假设IBase1IBase2接口可能不会更改,我将如何以最干净、最首选的方式解决这种歧义?

更新

根据我对使用显式接口实现的回应,我想提一下,虽然这确实解决了问题,但对我来说并没有以理想的方式解决它,因为我大部分时间都使用我的AllYourBase对象IAllYourBase,而不是作为IBase1IBase2。这主要是因为IAllYourBase还有接口方法(我没有在上面的代码片段中详细说明这些方法,因为我认为它们无关紧要),AllYourBase并且我也想访问它们。一直来回转换会变得非常乏味并导致代码混乱。

我确实尝试了一种解决方案,其中涉及定义Percentage属性IAllYourBase而不使用显式接口实现,这似乎至少消除了编译器错误:

这是一个有效的解决方案吗?

0 投票
1 回答
850 浏览

grammar - 处理 BNF 语法中的歧义

我正在尝试为我在 .NET 中使用 Irony 构建的 DSL 构建解析器,但发现了一个我无法解决的问题。由于它处理 BNF,我认为任何 BNF 解决方案都会有所帮助。

我有以下输入:

使用以下语法:

这个输入就像一个魅力。我得到了我想要的结果,即:

但是,如果我更改输入的顺序如下

由于减少步骤,它无法给我相同的输出。输出变为:

我想知道是否有办法确保仅在捕获所有其他令牌并且没有其他任何内容时才评估 Location (这是一个非常广泛的正则表达式匹配)。

任何帮助表示赞赏。

谢谢!

编辑:根据建议更新标题