Dart类中的静态调用方法(使类可调用)

 村头的小路_157 发布于 2023-02-12 22:12

对于嵌入式DSL,我希望类的行为类似于函数.对于实例来说似乎很容易(https://www.dartlang.org/articles/emulating-functions/),但我无法在课程中实现它.我尝试创建一个静态调用方法,但这也不起作用.

有没有办法或者我必须给该类另一个名称并使Pconst成为一个函数,调用构造函数?

class Pconst {
  final value;
  Pconst(this.value);
  static Pconst call(value) => new Pconst(value);

  String toString() => "Pconst($value)";
}

void main() {
  var test = Pconst(10);
  // Breaking on exception: Class '_Type' has no instance method 'call'.

  print("Hello, $test");
}

小智.. 9

class TestA {
  call(int a, int b) => a + b;
}

void main()
  var TA = new TestA();

  int integer = TA(3, 4);
  print (integer); 
}

call()方法很特殊,因为任何定义call()方法的人都被假定为动态模拟一个函数.这允许我们使用TestA它们是带有两个整数参数的函数的实例.

1 个回答
  • class TestA {
      call(int a, int b) => a + b;
    }
    
    void main()
      var TA = new TestA();
    
      int integer = TA(3, 4);
      print (integer); 
    }
    

    call()方法很特殊,因为任何定义call()方法的人都被假定为动态模拟一个函数.这允许我们使用TestA它们是带有两个整数参数的函数的实例.

    2023-02-12 22:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有