closures 相关问题

闭包是一个第一类函数,它引用(关闭)变量来自定义它的作用域。如果闭包在其定义范围结束后仍然存在,则它关闭的变量也将继续存在。

在解析时定义封闭函数?

通常,我看到函数闭包是通过表单实现的 var 关闭F = (函数() { return function(){/* 返回值 */} })(); 这样调用 closeF() 就会返回内部的返回值

回答 4 投票 0

理解 Go 闭包调用 myinc := inc() 与 inc()()

我正在学习 go 并致力于闭包。我对以下内容感到有点困惑; func inc() func() int { 变量 i 整数 = 0 返回 func() int { 我++ 返回我 } } 功能主要...

回答 1 投票 0

如何在CoffeeScript 2中正确使用循环内的函数?

1。概括 我找不到 2024 年 CoffeeScript 2 中在循环内使用函数的正确方法是什么(或者用什么替换它)。 我应该使用下面给出的变体之一,还是咖啡......

回答 1 投票 0

Rust 中的闭包就像高级语言中的那样

所以,我是 Rust 和低级编程的新手。我正在学习 Rust 用 sdl2 制作简单的游戏。我的项目架构如下: 主程序.rs 无效主() - >结果((),字符串){ 让 mut 窗口 = CWi...

回答 1 投票 0

为什么调用 Box-ed 闭包需要不稳定的 fn_traits?

考虑以下代码: #![特征(fn_traits)] fn test_fn_2_args(f:盒子) 在哪里 F: Fn(i32, i64) -> i32 { 作为 Fn<(i32, i64)>>::call(&f, ...

回答 1 投票 0

PHP 7.2 函数 create_function() 已弃用

我在下面的应用程序中使用了create_function()。 $callbacks[$delimiter] = create_function('$matches', "return '$delimiter' .strtolower(\$matches[1]);"); 但对于 PHP 7.2.0,

回答 6 投票 0

闭包 |a: i32, b: i32| 的类型是什么? {a + b}?

我尝试输入 vscode 显示的闭包类型定义内容,但这是错误的。我应该用什么来代替? 我的代码: 让 x = |a: i32, b: i32| {a+b}; Rust 分析仪扩展: 让 x: imp...

回答 1 投票 0

修剪闭合中的钥匙

我的闭包返回它作为数组操作的键时遇到问题,我做错了什么? 输入: $数组=数组( '/key1/' => 空, '/key2/part1/' =>...

回答 1 投票 0

自我调度功能中的词汇环境和记忆

这种代码是否存在内存泄漏: 令 n = 0; 函数 foo() { const str = '...长字符串' + (++n); 设置立即(()=> { console.log('str=' + str); foo(); ...

回答 1 投票 0

如何将闭包传递给 dyn Trait 对象

我想要一个对特征对象的 dyn 引用,我有一个方法,以闭包作为参数: 特征 DynTrait { fn dyn_method(&mut self, 闭包: impl FnMut(&str) + 'static); } // ....

回答 1 投票 0

闭包是值到内存另一个位置的副本吗?

我创建了下面的记忆作为概念证明。我想找到以下问题的答案:当我们修改闭包内的变量时,它是否会修改原始的初始值

回答 1 投票 0

如何在没有类的情况下在Python中维护状态?

是否有Python式的方法来维护状态(例如,为了优化的目的)而不完全面向对象? 为了更好地说明我的问题,这是我使用的模式的示例

回答 7 投票 0

在 PHP 7.4 中重写递归匿名函数

有如下匿名递归函数: $f = 函数($n) 使用 (&$f) { 返回($n==1)? 1 : $n * $f($n - 1); }; 回声 $f(5); // 120 我尝试重写到7.4版本,但是...

回答 4 投票 0

Golang 闭包不存储捕获的变量?

在下面的这段代码中,我期望输出为 0, 1, 2, 3,..., 9。但是,只产生输出 10, 10,...,10。 包主 导入“fmt” func 加法器() []func() { 输出 := []func(...

回答 2 投票 0

为什么这些相似闭包的捕获行为不同?

为什么 df 在其闭包中需要 &delta,而 df2 只能与 delta 一起使用?我怀疑这与通过值或引用传递有关,但我不能完全确定它。 #包括 为什么 df 需要 &delta 来关闭,而 df2 只能与 delta 一起使用?我怀疑它与通过值或引用传递有关,但我不能完全确定它。 #include <iostream> #include <cmath> #include <iomanip> template <typename Function> auto derivative(Function f, const double delta) { return [&f,delta](double x)->double{ return (f(x+delta) - f(x-delta)) / (2*delta); }; } int main () { const double delta = 0.00001; auto f = [](double x) -> double {return x * std::sin(x);}; auto df = [&f,&delta](double x)->double{return (f(x+delta) - f(x-delta)) / (2*delta);}; auto df2 = derivative(f,delta); for (double x = 0; x<5; x+= 0.5){ std::cout << std::setprecision(4) << "f(" << x << ") = " << f(x) << " f'= " << df(x) << " f'2= " << df2(x) << std::endl; } } 我最初尝试在 &delta 内的闭包内使用 df2 作为 derivative,但它将 delta 的值从 1e-5 更改为更低的值,例如 1e-301。当我使用 delta 时,一切都按预期工作。 在函数derivative中,变量delta是一个局部变量,其生命周期随着函数derivative的结束而结束。 如果通过引用捕获它,则 lambda 在调用时将使用无效引用,因为该变量不再存在。

回答 1 投票 0

通知中心还是关闭?

各位主管:我查了很多才决定问 这个问题,但我没有找到我想要的。 我的问题是:使用NotificationCenter和使用

回答 2 投票 0

为什么我不能将捕获的变量移动到闭包中?

这段: 结构任务链 { } 实现任务链 { pub fn add_task(mut self, 工作: T, 参数: A) -> Self 在哪里 T: Fn(usize, A) + '静态, ...

回答 1 投票 0

使用预定义对象减少 Task.Run/Factory.StartNew 中的闭包开销

这纯粹是为了实验目的和/或学习练习。本质上,我想看看是否可以减少使用 Task.Run(()=>Func<>()) 时创建的闭包的占用空间

回答 2 投票 0

闭包中的局部变量可见性与局部`sub`s

Perl 5.18.2 似乎接受“本地子例程”。 例子: 子外层() { 我的 $x = 'x'; # 只是举一个简单的例子 子内层($) { 打印“${x}$_[0] “;...

回答 3 投票 0

使用 IntelliJ IDEA 在 Groovy 中调试迭代(闭包)

我有一个混合 Java 和 Groovy 代码的代码库。对于 Groovy 代码中的迭代,我们倾向于使用闭包: String[] 字符串 = [“第一”、“第二”、“第三”] strings.each { 字符串 -> 打印

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.