问题标签 [local-functions]

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 投票
4 回答
10634 浏览

perl - “变量 $foo 将不会保持共享”在 Perl 中调用子例程时出现警告/错误

Update3:如果您喜欢这篇文章,请不要给我点赞,而是给下面 DVK 的天才答案点赞。

我有以下子程序:

但为什么它会给出这个信息:

它有害吗?错误?如何修复我的代码以消除该消息?

Update1:​​我使用实际错误消息更新按原样运行的代码

Update2:我尝试按照 DVK 的建议使用 sub 进行修改。它奏效了!

0 投票
0 回答
337 浏览

c# - 属性中的局部函数是一个好主意还是表明该属性应该是它自己的方法?

如果我做了这样的事情:

它实际上会编译,这让我想知道这是一个好还是坏的做法。

现在,显然这个特定示例可以重构为:public int Foo => 8;,但其他情况可能有一些本地方法并在它的主要get部分做一些事情。

请记住,无论何时编译代码,C# 实际上都会移出它所GetFoo 的属性或方法,这应该与调用普通方法的属性具有几乎完全相同的性能。

但是,如果有人觉得需要在属性中使用局部函数,这是否表明该属性正在做太多工作而应该是一种方法?

0 投票
1 回答
42 浏览

c# - 如果函数包含同名的本地函数,如何递归调用该函数?

我在玩本地函数,如果它包含同名的本地函数,我不知道如何调用主机函数。

0 投票
1 回答
364 浏览

c - Lua 的“全局”本地值存储在哪里?

我需要从 C 中调用 Lua 函数,只要该函数是全局的,我就可以在全局表中找到它,但如果它被声明为本地,我如何将地址压入堆栈以调用它?

从 C调用MyGlobal()不是问题,它工作正常。我在全局表中查找函数。

但是我如何MyLocalGlobal()从 C 调用?它不在全局表中,但它在哪里以及如何推送地址?

我正在使用 Lua 5.3.4。

0 投票
2 回答
178 浏览

c# - 如何在覆盖方法中使用基方法的本地函数

如果我有这个代码:

无论如何都可以调用Bar内部定义的本地函数Foo而不Bar使用普通方法?

0 投票
0 回答
55 浏览

python - 每次调用封闭函数时都会创建本地函数的新实例?

我遇到的一个 Python 教程提到每次调用封闭函数时都会创建本地函数的新实例。

我尝试通过以下两个示例对其进行测试:

示例 1:我object id从本地函数中获取本地函数,为每个函数调用创建新实例。这项工作符合预期。

示例 2:但是当object id从外部函数中获取局部函数时,Python 似乎不会为每次调用外部函数创建局部函数的新实例。

谁能指出这里发生了什么?

我明白:

我的问题是:

为什么这两个示例的行为不同,尽管在这两种情况下,执行 print 语句后对象都不再存在。

0 投票
0 回答
175 浏览

c# - 在代码块(例如 foreach)中声明 C# 本地函数的样式和性能?

我刚刚发现,在 C# 中,不仅可以在方法的顶级范围内声明本地函数,还可以在方法的嵌套范围内声明本地函数。我想知道这是否广为人知,我搜索并没有在任何地方看到它。你有什么想法?有点习惯于 Common Lisp,能够在方法内部的嵌套上下文中声明函数感觉很好。

我的实际用例是我有一个大的 foreach 遍历一组值,然后在父 foreach 中有几个 foreach 处理一些不同类型的形式并匹配父 foreach 的当前值。

0 投票
0 回答
56 浏览

c# - 如何通知 ReSharper 本地函数的返回值为 NotNull / CanBeNull?

有没有办法通知 ReSharper 本地函数的返回值是NotNullor CanBeNull

否则我需要将本地函数转换为成员函数或关闭悲观可空性检查,因为它们会产生大量警告。


编辑

我知道本地函数不支持属性,但我想知道有什么技巧。

例如,您不能将属性放在方法中,但您可以通过编写注释来禁用警告一次// ReSharper disable once InconsistentNaming。我正在寻找这样的技巧。

0 投票
4 回答
13007 浏览

c# - c# ERROR : 修饰符 'private' 对此项目无效

不管我在函数前面放什么修饰符(我尝试过公共、私有甚至受保护),我总是收到一个错误,同样的错误。只有在我删除修饰符并且我没有留下函数“Array()”之后,代码才是干净的。有人可以看看我的代码并向我解释发生了什么吗,我是 C# 的新手,也是寻求帮助的新手,所以请原谅我到目前为止所犯的每一个错误。

我已经在下面发布了代码和它的图像。

在此图像中,您可以看到代码

0 投票
1 回答
1383 浏览

c# - 在构造函数本地函数c#中设置只读字段

以下不编译。

它失败并出现此错误:

CS0191 无法分配只读字段(在构造函数或变量初始化程序中除外)

从技术上讲,我们还没有在构造函数中,因为本地函数的可见性是有限的,所以我想知道为什么它不能编译。