问题标签 [dynamic-binding]
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.
emacs - 临时覆盖编译模式正则表达式 alist:动态绑定怪异?
我正在研究一种程序模式,它对汇编程序、程序员和其他外部程序有各种不同的调用。我狡猾的计划是用compile
函数处理所有这些,传递一个compile-command
取决于正在运行的程序的显式。
这种似乎可行,现在我想为不同的外部程序添加特定的错误正则表达式。一种选择是更改compilation-error-regexp-alist-alist
,键入我的主要模式,然后将我的主要模式添加到compilation-error-regexp-alist
.
不过,我更愿意做的是如下所示:
奇怪的是,这个绑定似乎不会影响编译缓冲区被解析/标记的方式。如果我手动推<my-regexp-and-numbers>
到缓冲区的前面compilation-error-regexp-alist
然后调用(compilation-mode t)
缓冲区,一切都会按预期进行字体化(所以我没有弄错正则表达式)。但是,将调用粘在上面(compilation-mode t)
的表单内部let
不会影响任何事情。
我意识到这作为一个易于重现的测试用例非常失败。如果没有人有任何想法,我会尝试破解一个例子,但我希望有人会去“啊,是的!那是因为那时没有得到评估,而是在”或类似的.. .
php - 静态方法php中的动态绑定
我想在基类中有一个静态方法,它返回真实(派生)类的名称,而不在其中插入特定方法。是否可以?谢谢
c++ - 在 C++ 中,我们如何在不使用友元函数的情况下通过对象调用私有函数?
我遇到了用 C++ 编写的这段代码:
输出:
在以下情况下:
输出:
Compiler Error.
谁能解释为什么会这样?在第一种情况下,通过对象调用私有函数。
java - 没有“抽象”的Java中的运行时多态性?
我正在阅读官方的 Oracle 教程,其中介绍了多态性的概念,并以 3 个类的类层次结构为例;自行车是超类,MountainBike 和 RoadBike 是 2 个子类。
它显示了 2 个子类如何通过声明不同版本的方式覆盖在 Bicycle 中声明的方法“printDescription”。
最后,在最后,本教程提到 Java 虚拟机 (JVM) 为每个变量中引用的对象调用适当的方法。
但是,关于多态性的教程没有提到“抽象”类和方法的概念。除非将 Bicycle 中的 printDescription() 声明为“抽象”,否则如何实现运行时多态性?我的意思是,给定这个例子,编译器基于什么提示决定不在编译时将方法调用绑定到引用类型,并认为它应该留给 JVM 在运行时处理?
下面是使用的示例:
emacs - Elisp 中的高阶函数
我创建了一个在 Elisp 中返回函数的函数:
我尝试在 IELM 中运行它,但它失败了:
由于Lisp-1 和 Lisp-2 之间有什么区别?我将代码更改为
并调用(funcall (singleton-set 5) 5)
,但现在错误是
*** Eval error *** Symbol's value as variable is void: elem
我从elisp: capture variable from inner function了解到这是由于 Emacs Lisp 的动态绑定。
如何在 Emacs Lisp 中使函数返回函数成为可能?这种机制与 Python、Scala 或 Clojure 等其他语言不同的原因是什么?
相关问题:
c++ - 动态绑定几个
嗨专家我可以像这样进行动态绑定吗?objshapes 是名为 Shape 的父类,而 Rectangle 是子类。我有几个子类,所以根据用户选择的形状,我需要将正确的形状绑定到 objShapes。所以我想我可以像这样绑定。但我得到一个错误。
希望有人可以提供帮助。谢谢
这个对吗
c# - C#动态绑定和void方法调用
为什么编译器让这个表达式编译而运行时异常是不可避免的?
我不认为Dynamic Binding
应该适用于 void 方法
如果 C# 规范将上述表达式称为动态绑定表达式,为什么以下方法不能编译?
php - 是否可以为派生类创建静态属性,而不是为派生自它的所有类创建静态属性?
我正在尝试实现这样的事情:
具有与此类似的类结构:(我知道这不起作用。)
如何为每个子类创建不跨兄弟共享的静态变量?
我希望能够这样做的原因是能够跟踪每个派生类应该只发生一次的事件,而不必让从我的父类派生的客户端担心所说的实现跟踪功能。但是,如果所述事件发生,客户应该能够检查。
c - 使用动态范围按名称调用
我在静态/动态范围内遇到以下问题:
下面的程序片段是用允许全局变量但不允许函数嵌套声明的编程语言编写的。
Q1。如果编程语言使用静态作用域和按需参数传递机制调用,上述程序打印的值是
(A) 115, 220 (B) 25, 220 (C) 25, 15 (D) 115, 105
Q2。如果编程语言使用动态作用域和按名称调用参数传递机制,则上述程序打印的值是
(A) 115, 220 (B) 25, 220 (C) 25, 15 (D) 115, 105
我的想法:
在 Q1:因为它是静态范围,并且根据需要调用,x 应该替换为 i + j。但这会导致本地名称冲突,因为已经有一个名为 i 的变量。所以它(全局 i)可能会被重命名,让我们说 i1,然后调用将是:
关于 Q2:在动态作用域中,您首先在本地函数中搜索变量,然后在调用本地函数的函数中搜索,然后在调用该函数的函数中搜索,依此类推,直到调用堆栈。
根据名称调用:
第二个电话将是
这个答案正确吗?(选项中不存在)我缺少什么吗?(可能是动态绑定?)
c++ - 重载和覆盖如何协同工作?
我了解重载和覆盖的基础知识——但有些事情让我感到困惑。我将尝试用一个简单的例子来解释:
- B 类具有函数 X(B& b)
- D类继承自B类。
- D 类用 X(B& b) 覆盖 X 并用 X(D& d) 重载它。
然后我有以下代码:
我非常不确定第三行和第四test()
行将如何确定要调用 X() 的哪些实现以及正在发生的一般机制是什么。