# dart 基本语法

# 定义类型

在 Dart 语言中,函数与 String 和 Number 一样都是对象,可以使用 类型定义(或者叫 方法类型别名)来为函数的类型命名。使用函数命名将该函数类型的函数赋值给一个变量时,类型定义将会保留相关的类型信息。

typedef Compare = int Function(Object a, Object b);
1

备忘:目前类型定义只能用在函数类型上,但是将来可能会有变化。

# 使用扩展

typedef Comp<int, String> = int Function(Map<int, String> map, int i);

void main() {
  int test(Map<int, String> map, int i)=> map[i].paserInt() + i;

  print(test is Comp);//false
  print(test is Comp<int, String>);//true


}

/**
 * 使用Extension扩展
 */
extension TestExtension on String {
  int paserInt() {
    return int.parse(this);
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19