【问题标题】:how to define a variable of type "function"? (using optional typing)如何定义“函数”类型的变量? (使用可选类型)
【发布时间】:2014-10-05 07:40:23
【问题描述】:

在 Dart 中,函数是一流的。 文档告诉我们,您可以创建一个像这样的函数的变量:

var loudify = (msg) => '!!! ${msg.toUpperCase()} !!!';

创建一个名为“loudify”的函数,它接受一个字符串并返回另一个字符串。
如果我事先不知道要分配给变量的函数,我可以这样做:

// define the variable
var loudify;

// later on set the variable
loudify = (msg) => '!!! ${msg.toUpperCase()} !!!';

但是我如何使用可选类型以便我以后知道该变量是“函数”类型并且具有输入字符串和输出字符串? 我会建议这样的事情,但这不起作用(Dart 编辑器告诉我“未定义的类'函数'”):

// this gives a syntax error in the Dart editor
function<String, String> loudify;

那么这里的正确语法是什么?
问候,
亨德里克

【问题讨论】:

    标签: syntax types dart dart-editor


    【解决方案1】:

    您可以使用typedef

    typedef String OneString(String x);
    typedef String OneStringAndInt(String x, int y);
    
    void main() {
      //var f = (String x) => '$x';
      var f = (String x, int y) => '$x$y';
      if(f is OneString) {
        print(f('bla'));
      } else {
        print(f('bla', 10));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      相关资源
      最近更新 更多