问题标签 [scope-resolution]

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 回答
164 浏览

php - PHP中的多个paamayim nekudotaims,为什么不呢?

PHP 5.3.6中,我注意到以下内容不起作用:

发行unexpected T_PAAMAYIM_NEKUDOTAYIM. 但是,使用临时变量会导致预期的结果:

有谁知道这是设计使然,还是范围解析运算符如何标记的意外结果?比后者更干净的解决方法,临时变量示例?

0 投票
6 回答
379 浏览

c++ - 之间的区别。和 :: 在 C++ 中用于静态成员?

可能重复:
何时使用点、箭头或双冒号来引用 C++ 中的类成员?

当我尝试使用访问我的静态变量时,Class.Variable我得到了错误,Error left of 'Variable' must have class/struct/union当我这样做时,我没有Class::Variable得到任何错误。尽管在这两种情况下我都Variable通过了智能感知。在这种情况下,.和之间究竟有什么不同?::

0 投票
1 回答
1338 浏览

php - PHP:使用范围解析运算符调用非静态方法

可能的重复:
用“::”调用非静态方法
PHP 中的静态方法与非静态方法有什么区别吗?

考虑到我们不尝试使用 $this 访问对象上下文中的任何内容,允许使用 :: 调用非静态方法的原因是什么?它是向后兼容的东西,还是出于某种特殊原因?我应该习惯避免使用 :: 来访问非静态方法吗?

0 投票
2 回答
536 浏览

ruby - 为什么尚未定义的局部范围变量引用同名的实例变量?

我在代码中发现了一个奇怪的错误,它揭示了 ruby​​ 的一个有趣行为。希望有人可以解释为什么它会这样。

我有一个带有实例变量 @foo 的类和一个引用局部范围变量 foo 的方法。我重构了部分方法,不小心留下了对 foo 的引用;该变量不再定义在范围内。它最终指向@foo。更改 foo 会更改 @foo ,反之亦然。

简化版:编辑:添加了 ImOutOfNames。

bar_method_1 和 bar_method_2 的输出是“那是一个美味的汉堡”。我期待会有一个错误,例如运行上面的代码得到

我什至请了一位更资深的开发人员来看看,他有些困惑并确认了这种行为。

这是预期的行为,我误解了@variables 的工作原理还是有什么问题?

0 投票
2 回答
415 浏览

php - PHP:范围解析运算符和重载性能

我有两个问题:

1) 范围解析运算符 ( ::) 对于静态访问是否慢(或比->实例化类慢)?

这个名字有点暗示它必须“解决”一个范围,所以这就是我问的原因。

2)重载呢,特别是__get()__set()

我一直在避免使用它们,因为我听说它们对性能有总体负面影响。

提前感谢您的任何答案/建议。

0 投票
2 回答
103 浏览

c++ - 为什么范围解析在这里不起作用?

bar()这里函数不能重载的原因是什么?

0 投票
1 回答
3835 浏览

c++ - :: c++中模板函数调用前面的范围解析运算符

我坚持使用模板和范围解析运算符。我在一个文件中找到了这些行,我无法弄清楚为什么我们在模板函数调用前面使用 ::,据我所知,当引用全局变量时,我们只能在变量前面使用 :: . 任何想法都会有所帮助

0 投票
7 回答
43766 浏览

c++ - 为什么 C++ 需要范围解析运算符?

(我知道范围解析运算符的作用,以及如何以及何时使用它。)

为什么 C++ 有运算符,而不是为此目的::使用运算符?.Java 没有单独的运算符,并且工作正常。C++ 和 Java 之间是否存在一些差异,这意味着 C++ 需要单独的运算符才能进行解析?

我唯一的猜测是::出于优先级原因需要,但我想不出为什么它需要比.. 我能想到的唯一情况是这样的

将被解析为

,但我想不出这样的语法在任何情况下都是合法的。

也许这只是“他们做不同的事情,所以他们可能看起来不同”的情况。但这并不能解释为什么::优先级高于..

0 投票
4 回答
4487 浏览

c++ - 类名中使用的范围解析运算符是什么意思

我遇到了这段代码。

SomeClass 是一个类,那么也许 OtherClass 是存在于 SomeClass 范围内的一个类?我只是从未见过它这样做。

那么,就是这个意思吗?

0 投票
1 回答
125 浏览

php - 依赖注入或范围解析运算符?

我没有找到类似的问题,所以如果它已经存在,我深表歉意。

在我的系统中,我想要一些函数库来简化整个系统中的许多任务。那可能是验证电子邮件。如果我可以让一个函数来做,就没有理由每次都写完整的正则表达式,所以我只需要在一个地方进行更改和修复错误。

假设我编写了一个名为 Files_Tools 的类。

我可以通过将此类的实例依赖注入到需要此类函数的对象中来使其工作。但我也可以使用静态函数编写 Files_Tools 类,并使用范围解析运算符访问它们。但正如我所了解的,关于 DI(依赖注入)的主要事情之一是避免这种“全局使用”。所以我的逻辑告诉我采用 DI 方法。然而,我这样做仍然感觉不“正确”。

所以我的问题是——什么被认为是为系统创建工具集的最正确方法?首先,是把它做成一个类,而不是简单的函数吗?然后,如果它真的是一个类是要走的路,我应该瞄准 SRO 还是 DI?

我知道这个问题可能没有一个明确的答案,但我想知道我是否完全偏离轨道或走向许多其他编码人员也会做的事情。

提前致谢 :)