目录

五Dart-数据类型

(五)Dart 数据类型

Dart 数据类型

常用数据类型

Numbers(数值)

  • int :表示整数。
  • double :表示浮点数。

Strings(字符串)

  • String :表示字符串。

Booleans(布尔)

  • bool :表示布尔值,值为 truefalse

List(数组)

在 Dart 中,数组是列表对象,通常称为列表。

Maps(字典)

Map 是一个键值对相关的对象,键和值可以是任何类型的对象。每个键只出现一次,而一个值可以出现多次。

项目中用不到的数据类型

Runes

Rune 是 UTF-32 编码的字符串,可以通过文字转换成符号表情或者代表特定的文字。

main() {
  var clapping = '123123';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

  Runes input = new Runes(
      '111111');
  print(new String.fromCharCodes(input));
}

Symbols

Symbol 对象表示在 Dart 程序中声明的运算符或标识符。入门阶段不需要了解这东西,可能永远也用不上。


Dart 数据类型示例代码

字符串类型

void main() {
  // 1、字符串定义的几种方式
  // var str1 = 'this is str1';
  // var str2 = "this is str2";
  // print(str1);
  // print(str2);

  // String str1 = 'this is str1';
  // String str2 = "this is str2";
  // print(str1);
  // print(str2);

  // String str1 = '''this is str1
  // this is str1
  // this is str1
  // ''';
  // print(str1);

  // String str1 = """
  // this is str1
  // this is str1
  // this is str1
  // """;
  // print(str1);

  // 2、字符串的拼接
  String str1 = '你好';
  String str2 = 'Dart';
  // print("$str1 $str2");
  print(str1 + str2);
  print(str1 + " " + str2);
}

数值类型

void main() {
  // 1、int 必须是整型
  int a = 123;
  a = 45;
  print(a);

  // 2、double 既可以是整型也可以是浮点型
  double b = 23.5;
  b = 24;
  print(b);

  // 3、运算符
  // + - * / %
  var c = a + b;
  print(c);
}

布尔类型

void main() {
  // 1、bool
  // bool flag1 = true;
  // print(flag1);

  // bool flag2 = false;
  // print(flag2);

  // 2、条件判断语句
  // var flag = true;
  // if (flag) {
  //   print('真');
  // } else {
  //   print('假');
  // }

  // var a = 123;
  // var b = '123';
  // if (a == b) {
  //   print('a=b');
  // } else {
  //   print('a!=b');
  // }

  var a = 123;
  var b = 123;
  if (a == b) {
    print('a=b');
  } else {
    print('a!=b');
  }
}

List(数组/集合)

void main() {
  // 1、第一种定义 List 的方式
  // var l1 = ["张三", 20, true];
  // print(l1);  // [张三, 20, true]
  // print(l1.length);  // 3
  // print(l1[0]); // 张三
  // print(l1[1]); // 20

  // 2、第二种定义 List 的方式 指定类型
  // var l2 = <String>["张三", "李四"];
  // print(l2);

  // var l3 = <int>[12, 30];
  // print(l3);

  // 3、第三种定义 List 的方式 增加数据,通过 [] 创建的集合它的容量可以变化
  // var l4 = [];
  // print(l4);
  // print(l4.length);

  // l4.add("张三");
  // l4.add("李四");
  // l4.add(20);
  // print(l4);
  // print(l4.length);

  // var l5 = ["张三", 20, true];
  // l5.add("李四");
  // l5.add("zhaosi");
  // print(l5);

  // 4、第四种定义 List 的方式
  // var l6 = new List();  // 在新版本的 Dart 里面没法使用这个方法了

  // var l6 = List.filled(2, "");  // 创建一个固定长度的集合
  // print(l6);
  // print(l6[0]);

  // l6[0] = "张三";   // 修改集合的内容
  // l6[1] = "李四";
  // print(l6);  // [张三, 李四]
  // l6.add("王五");  // 错误写法 通过 List.filled 创建的集合长度是固定,没法增加数据

  // 通过 List.filled 创建的集合长度是固定
  // var l6 = List.filled(2, "");
  // print(l6.length);
  // l6.length = 0;  // 修改集合的长度   报错

  // var l7 = <String>["张三", "李四"];
  // print(l7.length);  // 2
  // l7.length = 0;  // 可以改变的
  // print(l7);  // []

  var l8 = List<String>.filled(2, "");
  l8[0] = "string";
  // l8[0] = 222;
  print(l8);
}

Maps(字典)

void main() {
  // 第一种定义 Maps 的方式
  // var person = {
  //   "name": "张三",
  //   "age": 20,
  //   "work": ["程序员", "送外卖"]
  // };

  // print(person);
  // print(person["name"]);
  // print(person["age"]);
  // print(person["work"]);

  // 第二种定义 Maps 的方式
  var p = new Map();
  p["name"] = "李四";
  p["age"] = 22;
  p["work"] = ["程序员", "送外卖"];
  print(p);
  print(p["age"]);
}