【问题标题】:List of Functions in class - Dart/Flutter类中的函数列表 - Dart/Flutter
【发布时间】:2021-08-20 03:34:40
【问题描述】:

如何制作类中的函数列表? 我试过这个:

class MyClass extends StatelessWidget{
 final List<Function> listOfFunctions = [
  _fun1,
  _fun2,
  _fun3,
 ];
}

但列表只在没有类的情况下工作,在 main() 函数中

我知道我可以在课堂上制作空列表并使用 .new() 或 listOfFunctions[0] = _fun1;但这对我来说还不够

【问题讨论】:

  • 什么不起作用?您是否将参数传递给您的函数?它应该仍然有效。
  • @pskink thx 它可以工作,但只能在 main() 内部。你知道为什么它在课堂上不起作用吗?
  • 嗨@Szymon,如果您对问题有更新,请编辑问题,不要发布答案。
  • 你能发布更多代码吗?

标签: list flutter class dart


【解决方案1】:

对于每个函数使用 () => {name}

然后使用 listOfFunctions [index] () 调用它

这可能是一种解决方法,因为我认为它实际上是存储调用您的函数的函数,但我想不出另一种方法。

【讨论】:

  • @Szymon List listOfFunctions = [ () => { fun1() }, () => { fun2() }, () => { fun3() } ];同样,这是一种解决方法,因为它正在调用存储函数的函数,但它仍然允许返回数据和参数
【解决方案2】:

不知道为什么,但是当列表在构建小部件中时它可以工作

class MyClass extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
   final List<Function> listOfFunctions = [
    _fun1,
    _fun2,
    _fun3,
   ];
  }
}

【讨论】:

    【解决方案3】:
    String func1(){return "Function List1";}
    String func2(String text){return text;}
    //create list function
    final List<Function> functions = [func1,func2,];
    //use the list
    //0 and 1 index of functions list 
    print(functions[0]());
    print(functions[1]("Function List2"));
    

    代码结果:函数List1 函数列表2

    【讨论】:

    • 我的问题是如何声明带有空元素的函数列表,我稍后再声明。我发布了解决方案,但现在我建议在 init() 段中声明 List,你可以覆盖类似于 build() 段
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 2020-01-28
    • 2018-12-03
    • 2019-10-26
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多