如何在方法中调用闭包

rap-2-h

我尝试从为structure实现方法中 调用闭包我读了一些有关此的文章,但现在有点迷路了。这是一个简化的版本:do_somethingA

// A simple structure
struct A<F> {
    f: F,
}

// Implements new and do_something
impl<F> A<F> where F: Fn() {
    fn new(f: F) -> A<F> {
        A { f: f }
    }
    fn do_something(&self) {
        self.f() // Error is here.
    }
}

fn main() {
    let a = A::new( || println!("Test") );
    a.do_something()
}

它显示此错误:

错误:在当前作用域中f找不到类型的命名方法&A<F>

我以为闭包就是这样称呼的,但似乎我错过了一些东西。我尝试self.f()self.f.call()(没有真正理解的随机测试)代替,但是它说了两件事:

  1. 错误:此函数需要1个参数,但提供了0个参数
  2. 错误:明确使用未装箱的闭合方法call是实验性的[E0174]

我不确定第一个错误,但是我想如果它是实验性功能,我现在就不会使用此功能。

有没有办法在方法中调用闭包?

谢泼玛特

将成员名称括在括号中:

fn do_something(&self) {
    (self.f)()
}

如果我没记错的话,根本原因与解析代码时的优先级有关。self.f()寻找标题为的方法f,由于该方法不存在而将失败。(self.f)()导致对其进行不同的解析,特别是查找成员变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Spock测试中的where子句中调用方法或闭包

来自分类Dev

如何在Spock测试中的where子句中调用方法或闭包

来自分类Dev

如何在Swift中调用超级闭包

来自分类Dev

如何在系统方法中添加闭包?

来自分类Dev

闭包如何在mapValues方法中工作?

来自分类Dev

从数组中调用方法和闭包

来自分类Dev

如何在scala中实现闭包?

来自分类Dev

如何在闭包中制作原型?

来自分类Dev

如何在Trait中调用闭包委托以使其正确使用

来自分类Dev

如何在从成员函数调用的闭包中修改self?

来自分类Dev

如何重构Groovy中作为方法调用参数的闭包中的重复项?

来自分类Dev

如何通过调用方法或闭包向Groovy Markup Builder中的不同父项添加节点

来自分类Dev

在闭包中调用方法(存储在变量中)

来自分类Dev

在jquery闭包中调用vuejs组件的方法

来自分类Dev

如何在Swift中从闭包中获取数据

来自分类常见问题

如何在泛型结构中定义const闭包

来自分类Dev

如何在Swift中定义闭包数组?

来自分类Dev

如何在Swift中创建_inline_递归闭包?

来自分类Dev

如何在Swift中设置对闭包/函数的弱引用?

来自分类Dev

如何在Swift中“生成”闭包类型别名?

来自分类Dev

如何在jQuery .each函数中添加闭包?

来自分类Dev

如何在Python中实现Javascript闭包?

来自分类Dev

如何在可选闭包中添加@noescape批注

来自分类Dev

如何在Rust的结构中存储闭包?

来自分类Dev

如何在Swift中创建通用闭包

来自分类Dev

如何在SwiftUI中向Viewmodifiers添加闭包?

来自分类Dev

如何在泛型结构中定义const闭包

来自分类Dev

如何在结构中存储闭包对象?

来自分类Dev

如何在闭包中更改引用传递的数组的数据

Related 相关文章

热门标签

归档