closures 相关问题

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

为什么 Rust 中的闭包和函数之间存在巨大差异以及如何解决它?

我刚刚遇到了 Rust 如何处理闭包的问题。 假设我是一个库作者并且编写了这个方法 fn get(&mut self, 处理程序: fn() -> &str){ //用

回答 1 投票 0

排序(by:)方法/需要解释

在我的学习书中遇到了这个新的“sort(by:)”方法,没有任何合理的解释它如何以及为什么工作,以此作为代码示例: 变量数字 = [1, 2, 5, 3, 7, 4, 6, 9, 8] 让

回答 1 投票 0

函数内的闭包/需要解释

大家!我正在研究闭包,并在书中看到了一个(对我来说)未知的在函数中使用闭包的示例: func counter() -> () -> Int { 变量计数 = 0 让增量器: () -> ...

回答 1 投票 0

结构成员(HashMap)中的闭包捕获对另一个结构成员的可变引用

我怎样才能在 Rust 中实现这样的目标 结构测试结构{ 映射:HashMap()>>, 值:i32 } 实现测试结构{ fn new() -> 自身 { ...

回答 1 投票 0

为什么生命周期省略对于返回 Fn 的函数不起作用?

根据 The Rust Book,终身省略允许我们拥有这个签名: fn first_word(s: &str) -> &str { ... } 而不是这个更详细的版本: fn 第一个单词<'a>(s: &a...

回答 1 投票 0

SwiftUI 动画完成处理程序/关闭

当使用animation-View-Modifier的视图上的某个动画结束时,是否有可能以某种方式调用处理程序或闭包? 就像 UIKit 中的“animate”功能一样: 呃...

回答 1 投票 0

你能返回闭包或创建行为类似于闭包的可调用对象吗?

我一直遇到一个问题。比如说我有以下内容: fn make_iterator<'a, T>(t: &'a T) -> ///??? 其中 T:一些特征 { /* 一些复杂的逻辑*/ 返回 |i:u...

回答 1 投票 0

我可以创建一个“不安全的关闭”吗?

我有一些代码,简化后如下所示: fn foo() -> Vec { 不安全{ unsafe_iterator().map(|n|wrap_element(n)).collect() } } 迭代器返回的项

回答 1 投票 0

有没有办法在 Rust 中创建一个计算具有随机系数的 n 次多项式的闭包?

所以我们的想法是有一个函数返回带有随机系数的 n 次闭包。这对于比较根查找方法可能很有用,因为我们可以自动创建函数......

回答 1 投票 0

在 JS 中执行作用域和闭包

我编写了范围和闭包的代码 函数 fun1(){ 令 a = 2 函数 fun2(){ 控制台.log(a) } 返回乐趣2 } b = 乐趣1() 控制台.log(b) 据我所知,我正在存储 fun1

回答 1 投票 0

在闭包中解开之前检查过的选项会导致崩溃

我遇到了一次非常罕见的崩溃,可能涉及完美的时机(关闭应用程序或进入后台状态?)此代码的最后一行 文件私有静态函数 showNextDialog() { 乐...

回答 1 投票 0

如果主函数结束时整个过程也结束,那么闭包怎么会比主函数活得更久呢?

我有以下代码: 使用 std:: 线程; fn 主() { 让 x: &'static mut [i32; 3] = Box::leak(Box::new([1, 2, 3])); 线程::spawn(|| dbg!(&x)); } 当我编译它时,出现以下错误: ...

回答 1 投票 0

将闭包放入字典中

在 iOS 应用程序中,我有一个弹出按钮,其中包含可以更改的项目名称列表。 我正在尝试制作一个 [String : (String)->Void] 字典来存储要执行的不同操作...

回答 1 投票 0

为什么当我将闭包存储为变量时会出现生命周期错误,而当我将其声明为表达式时却没有错误?

我正在使用 AWS Lambda(通过 lambda_http 箱),并且以下代码无法编译: 让处理程序= service_fn(移动|事件:请求|异步{ handler_organization_post(&shared_client,

回答 1 投票 0

rust“借用的数据在方法之外逃逸”并带有闭包

这里的系统是: 事件:针对不同类型事件“扩展”的特征 window:控制器,负责窗口创建并将其事件进一步传播到队列中 应用...

回答 2 投票 0

是否有内置的“Or”函数可以在 Rust 闭包中使用?

我编写了以下 Rust 函数,其中包含一个闭包。 fn has_a_none_element(&self) -> bool { 让 elements_is_none = self.elements.iter().flatten().map(

回答 1 投票 0

是否可以将使用 `.map()` 的函数应用于 Rust 中嵌套向量的每个元素?

是否可以将闭包或函数应用于 Vec> 的每个元素? 这可以用 .map() 来完成吗?如果没有,那么还有其他选择吗? 我想转换 Vec 是否可以将闭包或函数应用于 Vec<Vec<T>> 的每个元素? 这可以用.map()来完成吗?如果没有的话,还有其他选择吗? 我想将 Vec<Vec<Option<f64>>> 转换为 Vec<Vec<f64>>。我对如何做到这一点的第一个想法是使用 .map() 加上闭包。 当我尝试这样做时,我发现.iter().map(f)不是正确的方法,因为这将f应用于第一个Vec的每个元素,而这些元素本身就是Vec。 我还研究了iter().flatten(),但这会产生一个Vec<T>,其中包含Vec<Vec<T>>中的所有元素,它“破坏”了我需要保留的二维结构。 我猜一种可能的方法是使 f 的闭包逻辑本身称为 iter().map(g),其中 g 从 Option<f64> -> f64 进行所需的转换。但这可能有点不优雅。 是的,这是可能的: fn main() { let vec = vec![vec![Some(1.), None, Some(2.)]]; let vec2 = vec.iter().map(|inner_vec| { inner_vec.iter().map(|option| { option.unwrap_or(0.) }).collect::<Vec<_>>() }).collect::<Vec<_>>(); println!("vec2: {:?}", vec2); } // Program output: // vec2: [[1.0, 0.0, 2.0]] 基本上,您可以迭代最外面的 Vec 并映射其元素。这些元素是内部向量,您可以(再次)迭代并映射其元素。然后,您可以对内部 Option<f64> 应用一些操作,例如 .unwrap_or(0.),然后再次将两层嵌套重新收集回 Vecs 中。

回答 1 投票 0

映射到 div 网格

我正在尝试调整以下内容,以便 4x4 网格显示数字 1 到 n。每个 div 单元格都需要一个 onclick 处理程序。 我尝试修改与 co 渲染图表的最后一个响应...

回答 1 投票 0

如何在 Rust 中“向量化”函数

假设我想要一个对集合的两个元素进行操作的函数,并将其转换为对两个集合进行元素操作的函数。 比如我想转一个函数

回答 1 投票 0

尝试从闭包访问返回的字符串时出现编译器错误“无法将类型‘()’的返回表达式转换为返回类型‘String’”

func requestList(completionParameter: @escaping (String) -> String ) { 让 url = URL(字符串: "https://www.google.de")! 让任务 = URLSession.shared.dataTask(with: url) { data,

回答 1 投票 0

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