问题标签 [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.

0 投票
8 回答
3718 浏览

c - C: 不能在 if 语句中声明指针

我有一个指向函数的指针。我想:

但是我不能这样做,因为当我稍后在代码中第一次使用指针时,我的编译器会抱怨。

这很奇怪。它在没有 if 语句的情况下工作,但现在我需要我的程序能够从不同来源获取数据。难道不能这样做吗?我认同。如果不是,有没有其他简单的方法可以得到我正在尝试的东西?

非常感谢。

0 投票
6 回答
71399 浏览

r - 您如何在 R 中使用“<<-”(范围分配)?

我刚刚读完R intro 中关于范围界定的<<-内容,并且对这项任务非常好奇。

该手册显示了一个(非常有趣的)示例<<-,我觉得我理解了。我仍然缺少的是何时有用的上下文。

所以我很想从你那里读到一些例子(或例子的链接),关于什么时候使用<<-可以是有趣/有用的。使用它可能有什么危险(看起来很容易忘记),以及您可能想要分享的任何提示。

0 投票
4 回答
226 浏览

perl - 在大脚本中按词法导入有用的函数

有时我需要一个有用的实用函数,比如List::Util::max在一个做很多事情的大程序中间。所以如果我这样做

在我的程序顶部,我被那个符号卡住了,污染了我的整个命名空间,尽管我只在一个子例程中需要它。

所以我一直在考虑尝试不同的模式,而不是:

不过,这有两个问题。一方面,它不会在块的末尾自动取消导入(drat)。我必须使用unimport.

另一个问题是显然原型没有得到正确应用,所以我不得不说max( @foobar )而不是更漂亮的无括号版本。

有没有一种简单的方法可以临时导入块的符号,这会自动使它们在块的末尾消失,并且还能正确处理原型?

0 投票
1 回答
1482 浏览

perl - 我的 $_; 如果隐含 $_ 则执行任何操作

我认为答案是肯定的,但我只是想确定一下。所以如果我有

my $_;对传递给say的参数进行词汇化是否有效?

在这种特殊情况下,我使用的是DZP::UnusedVarsTests并且它抱怨我没有使用过my $_;,我怀疑这是一个错误,因为我在暗示它的情况下使用它。

0 投票
2 回答
835 浏览

perl - 为什么用“我们的”声明的变量在文件中可见?

从“我们的” perldoc

our 与 my 具有相同的范围规则,但不一定创建变量。

这意味着声明的变量our不应该跨文件可见,因为文件是最大的词法范围。但是这是错误的。为什么?

0 投票
6 回答
1522 浏览

javascript - JavaScript 示例问题:词法作用域/闭包 - Eloquent Javascript

所以我是编程新手,我正在尝试通过 Eloquent Javascript 这本书来学习 JS。

到目前为止一切顺利,直到我用以下代码找到一个示例

注意:show 和alert 一样,只是在教程集成的JS 控制台屏幕上显示变量。

作者说这是一个展示词法作用域如何允许合成函数的例子。 本章在这里

我不明白的是,应该是变量的addTwo和如何可以向函数发送参数,更具体地说,函数如何知道变量发送的参数是参数。addFivemakeAddFunctionaddaddnumber

谢谢你们的帮助!

0 投票
2 回答
689 浏览

ruby - 类似于 let in Ruby

我曾经用词法范围编写类似 let 的表达式。

所以我写了自己的(很遗憾,但它会因多个线程而失败):

我在谷歌搜索红宝石的这种结构(可能是额外的块定义),但找不到。也许我失去了一些东西?在这种情况下,人们使用什么红宝石?

PS:对不起,我的英语不好,你知道的。

UPD:我想提供使用示例:

输出:

0 投票
1 回答
2636 浏览

perl - Perl 作用域和局部变量的生命周期

Perl 中的局部变量分配的内存位置可以存活多长时间(对于数组、散列和标量)?例如:

函数返回后还能访问"bar"内存中的字符串吗?它会存在多久,它类似于 C 中的静态变量还是更像是在堆外声明的变量?

基本上,这在这种情况下有意义吗?

0 投票
2 回答
540 浏览

lisp - 在 LISP 中如何检查闭包中的自由变量?

在 lisp 中,我可以像这样绑定绑定在闭包中的自由变量...

结果是 ...

我想知道的是是否可以动态检查绑定的闭包变量?

例如

导致类似...

谢谢所以

0 投票
1 回答
62 浏览

scope - 关于词法作用域的查询

我试图理解词法范围。在词法作用域中,我有这个代码,类似 C 的语法:

行执行后f1(),main中变量的值y(我把*放在它旁边)是保持1还是变为8?