Flutter开发必备Dart基础:typedef使用

1,920 阅读1分钟

只有一个人能界定你一生的成就,那就是你自己!

一、 简单的typedef

一个 typedef 可以把我们的函数签名指定为一个函数类型。函数签名由函数的参数(包括其类型)定义。返回类型不是函数签名的一部分。其语法如下。

typedef  FunctionType = Function(Para_Type  para);

哈哈,我产生了一个大胆的想法,既然FunctionType是一个函数类型,那么它的变量就得乖乖的接收函数的引用(dart中万物皆可引用),那么如下代码:

typedef FuncCallback = Function(int data);

void test(FuncCallback funcCallback) {
  String f = funcCallback(3);
  print("$f");
}

void main() {
  FuncCallback fa = (int a){
    return "接收到的参数是$a";
  };
test(fa);
}

呀嘿!这不就是个回调吗?写的这么麻烦,垃圾......好吧!优化一下,看下面代码:

typedef FuncCallback = Function(int data);

void test(FuncCallback funcCallback) {
  String f = funcCallback(3);
  print("$f");
}

void main() {
  test((int a) {
    return "接收到的参数是 $a ";
  });
}

还是不行?再简便点?OK!看下面代码:

typedef FuncCallback(int data);

void test(FuncCallback funcCallback) {
  String f = funcCallback(3);
  print("$f");
}

void main() {
  test((int a) {
    return "接收到的参数是 $a ";
  });
}

二、开发中注意的点

三、与泛型结合的快乐