作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试了解浅层绑定(bind)和深层绑定(bind),维基百科并没有很好地正确解释它。假设我有以下代码,如果该语言使用动态作用域,输出会是什么
a) 深度绑定(bind)
b) 浅绑定(bind)?
x: integer := 1
y: integer := 2
procedure add
x := x + y
procedure second(P:procedure)
x:integer := 2
P()
procedure first
y:integer := 3
second(add)
----main starts here---
first()
write_integer(x)
最佳答案
深度绑定(bind)绑定(bind)过程作为参数传递时的环境
浅绑定(bind)绑定(bind)实际调用过程时的环境
因此,当 add 传递到第二个时,对于具有深度绑定(bind)的动态作用域环境是 x = 1,y = 3,x 是全局 x,因此它将 4 写入全局 x,这是 write_integer 拾取的值。
浅绑定(bind)只会向上遍历,直到找到与名称对应的最近的变量,因此答案为 1。
关于language-agnostic - 动态作用域 - 深层绑定(bind)与浅层绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1753186/
根据 redux 的文档,reducer 总是给出一个新的状态副本。在连接的组件中,react-redux 对 mapStateToProps(旧与新 props)中提到的属性进行浅层比较。 我的困惑
我是一名优秀的程序员,十分优秀!