Dart 初体验

  1. printInteger(int a) {
  2. print('Hello world, this is $a.');
  3. }
  4. main() {
  5. var number = 2019;
  6. printInteger(number);
  7. }

Dart 的变量与类型

所有类型都是对象.

声明变量:

  • var: 由编译器推断类型, var a
  • 类型: int a

基本类型

num, 数字类:

  • 64位 int
  • 64位 double
  1. int x = 1;
  2. int hex = 0xEEADBEEF;
  3. double y = 1.1;
  4. double exponents = 1.13e5;
  5. int roundY = y.round();

bool:

  • true
  • false

string:

  • 构造字符串字面量时既能使用单引号也能使用双引号
  • 还能在字符串中嵌入变量或表达式:你可以使用 ${express} 把一个表达式的值放进字符串
    • 如果是一个标识符,你可以省略{}
  1. var s = 'cat';
  2. var s1 = 'this is a uppercased string: ${s.toUpperCase()}';
  3. var s2 = 'Hello' + ' ' + 'World!' ;
  4. // 多行
  5. var s3 = """This is a
  6. multi-line string.""";

list, map:

  1. var arr1 = ["Tom", "Andy", "Jack"];
  2. var arr2 = List.of([1,2,3]);
  3. arr2.add(499);
  4. arr2.forEach((v) => print('${v}'));
  5. var map1 = {"name": "Tom", 'sex': 'male'};
  6. var map2 = new Map();
  7. map2['name'] = 'Tom';
  8. map2['sex'] = 'male';
  9. map2.forEach((k,v) => print('${k}: ${v}'));
  • 带有类型约束的写法
  1. var arr1 = <String>['Tom', 'Andy', 'Jack'];
  2. var arr2 = new List<int>.of([1,2,3]);
  3. arr2.add(499);
  4. arr2.forEach((v) => print('${v}'));
  5. print(arr2 is List<int>); // true
  6. var map1 = <String, String>{'name': 'Tom','sex': 'male',};
  7. var map2 = new Map<String, String>();
  8. map2['name'] = 'Tom';
  9. map2['sex'] = 'male';
  10. map2.forEach((k,v) => print('${k}: ${v}'));
  11. print(map2 is Map<String, String>); // true

常量

  • const,表示变量在编译期间即能确定的值;
  • final 则不太一样,用它定义的变量可以在运行时确定值,而一旦确定后就不可再变。
  1. final name = 'Andy';
  2. const count = 3;
  3. var x = 70;
  4. var y = 30;
  5. final z = x / y;