问题标签 [lexical-scope]
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.
c - C: 不能在 if 语句中声明指针
我有一个指向函数的指针。我想:
但是我不能这样做,因为当我稍后在代码中第一次使用指针时,我的编译器会抱怨。
这很奇怪。它在没有 if 语句的情况下工作,但现在我需要我的程序能够从不同来源获取数据。难道不能这样做吗?我认同。如果不是,有没有其他简单的方法可以得到我正在尝试的东西?
非常感谢。
r - 您如何在 R 中使用“<<-”(范围分配)?
我刚刚读完R intro 中关于范围界定的<<-
内容,并且对这项任务非常好奇。
该手册显示了一个(非常有趣的)示例<<-
,我觉得我理解了。我仍然缺少的是何时有用的上下文。
所以我很想从你那里读到一些例子(或例子的链接),关于什么时候使用<<-
可以是有趣/有用的。使用它可能有什么危险(看起来很容易忘记),以及您可能想要分享的任何提示。
perl - 在大脚本中按词法导入有用的函数
有时我需要一个有用的实用函数,比如List::Util::max
在一个做很多事情的大程序中间。所以如果我这样做
在我的程序顶部,我被那个符号卡住了,污染了我的整个命名空间,尽管我只在一个子例程中需要它。
所以我一直在考虑尝试不同的模式,而不是:
不过,这有两个问题。一方面,它不会在块的末尾自动取消导入(drat)。我必须使用unimport
.
另一个问题是显然原型没有得到正确应用,所以我不得不说max( @foobar )
而不是更漂亮的无括号版本。
有没有一种简单的方法可以临时导入块的符号,这会自动使它们在块的末尾消失,并且还能正确处理原型?
perl - 我的 $_; 如果隐含 $_ 则执行任何操作
我认为答案是肯定的,但我只是想确定一下。所以如果我有
my $_;
对传递给say的参数进行词汇化是否有效?
在这种特殊情况下,我使用的是DZP::UnusedVarsTests并且它抱怨我没有使用过my $_;
,我怀疑这是一个错误,因为我在暗示它的情况下使用它。
javascript - JavaScript 示例问题:词法作用域/闭包 - Eloquent Javascript
所以我是编程新手,我正在尝试通过 Eloquent Javascript 这本书来学习 JS。
到目前为止一切顺利,直到我用以下代码找到一个示例
注意:show 和alert 一样,只是在教程集成的JS 控制台屏幕上显示变量。
作者说这是一个展示词法作用域如何允许合成函数的例子。 本章在这里
我不明白的是,应该是变量的addTwo
和如何可以向函数发送参数,更具体地说,函数如何知道变量发送的参数是参数。addFive
makeAddFunction
add
add
number
谢谢你们的帮助!
ruby - 类似于 let in Ruby
我曾经用词法范围编写类似 let 的表达式。
所以我写了自己的(很遗憾,但它会因多个线程而失败):
我在谷歌搜索红宝石的这种结构(可能是额外的块定义),但找不到。也许我失去了一些东西?在这种情况下,人们使用什么红宝石?
PS:对不起,我的英语不好,你知道的。
UPD:我想提供使用示例:
输出:
perl - Perl 作用域和局部变量的生命周期
Perl 中的局部变量分配的内存位置可以存活多长时间(对于数组、散列和标量)?例如:
函数返回后还能访问"bar"
内存中的字符串吗?它会存在多久,它类似于 C 中的静态变量还是更像是在堆外声明的变量?
基本上,这在这种情况下有意义吗?
lisp - 在 LISP 中如何检查闭包中的自由变量?
在 lisp 中,我可以像这样绑定绑定在闭包中的自由变量...
结果是 ...
我想知道的是是否可以动态检查绑定的闭包变量?
例如
导致类似...
谢谢所以
scope - 关于词法作用域的查询
我试图理解词法范围。在词法作用域中,我有这个代码,类似 C 的语法:
行执行后f1()
,main中变量的值y
(我把*放在它旁边)是保持1还是变为8?