Dart学习笔记(二)

94 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Dart中支持以下数据类型:

常用的数据类型:

Numbers (数值):

  • int 
  • double 

Strings (字符串): 

  • String 

Booleans (布尔): 

  • bool 

List (数组): 

  • 在Dart中, 数组是列表对象,所以大多数人只是称它们为列表

Maps (字典): 

  • 通常来说, Map 是一个键值对相关的对象。 键和值可以是任何类型的对象

Dart 判断数据类型

is 关键词来判断类型

项目中用不到的数据类型:
Runes

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

    main() { var clapping = '\u{1f44f}'; print(clapping); print(clapping); print(clapping);

    Runes input = new Runes(
        '\u2665   \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}'
    );
    print(new String.fromCharCodes(input));
    

    }

Symbols

  • Symbol对象表示在Dart程序中声明的运算符或标识符。
  • 在Dart中 符号用 # 开头来表示

Dart 字符串类型

void main() {
 
  // 1.字符串定义的几种方式
 
  var str1 = 'this is str1';
 
  var str2 = 'this is str2';
 
  print(str1);
 
  print(str2);
 
 
  String str3 = 'this is str3';
 
  String str4 = 'this is str4';
 
  print(str3);
 
  print(str4);
 
 
  // 三个单引号 三个双引号 可以写多行
 
  String str5 = '''this is str5
 
      this is str5
 
      this is str5
 
      ''';
 
  print(str5);
 
 
  // 2.字符串的拼接
 
  String str6 = '你好';
 
  String str7 = 'Dart';
 
  // 方式一
 
  print("$str6 $str7");
 
  // 方式二
 
  print(str6 + " " + str7);
}

Dart 数值类型

  • int

    int a = 123;

    print(a);

  • double

    double b = 23.5;

    print(b);

  • 运算符 + - * / %

    var c = a + b;

    print(c);

Dart 布尔类型

值 true false

  • bool

    bool flag1 = true;

    print(flag1);

    bool flag2 = false;

    print(flag2);

  • 条件判断语句 

    var flag = true;

    if (flag) {

    print('真');

    } else {

    print('假');

    }

    var a = 123;

    var b = '123';

    if (a == b) {

    print('a=b');

    } else {

    print('a!=b');

    }

Dart List(数组类型)

  • 第一种定义List的方式

    var l1 = ["张三", 20, true];

    print(l1);

    print(l1.length);

    print(l1[0]);

    print(l1[1]);

  • 第二种定义List的方式 指定类型

    var l2 = ["张三", "李四"];

    print(l2);

    var l3 = [12, 30];

    print(l3);

  • 第三种定义List的方式 增加数据, 通过[]创建的集合它的容量可以变化的

    var l4 = [];

    print(l4);

    l4.add("张三");

    l4.add("李四");

    l4.add(20);

    print(l4);

    print(l4.length);

    var l5 = ["张三", 20, true];

    l5.add("李四");

    l5.add("赵四");

    print(l5);

  • 第四种定义List方法

    var l6 = new List(); // 在新版本的dart里面没法使用这个方法

创建一个固定长度的集合

   var l6 = List.filled(2, "");
 
   print(l6);
 
   print(l6[0]);
 
   l6[0]="张三"; // 修改数据
 
   l6[1]="李四";
 
   print(l6); // [张三, 李四]
 
   l6.add("王五"); // l6长度不够 会报错

通过List.filled创建的集合的长度是固定的 没有办法修改

   var l6 = List.filled(2, "");
 
   print(l6.length);
 
   l6.length = 0; // 修改集合的长度 报错

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

通过指定类型创建集合

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

通过指定类型创建集合

   var l9 = List<String>.filled(2, "");
 
   l9[0] = "string"; // 可以改变长度
 
   print(l9); // []

Dart Maps(字典)

  • 第一种定义 Maps的方式

    var person = {

     "name": "张三",
    
     "age": 20,
    
     "work": ["程序员", "送外卖"]
    

    };

    print(person); // {name: 张三, age: 20}

    print(person["name"]); // 张三

    print(person["work"]); // [程序员, 送外卖]

  • 第二种定义 Maps的方式

    var p = new Map();

    p["name"] = "李四";

    p["age"] = 22;

    p["work"] = ["程序员", "送外卖"];

    print(p);

    print(p["age"]);

Dart判断数据类型

is 关键词来判断类型

  var str = '1234';
 
  if (str is String) {
 
    print('是String类型');
 
  } else if (str is int) {
 
    print('是string类型');
 
  } else {
 
    print('其他类型');
 
  }

   var clapping = '\u{1f44f}';
 
   print(clapping);
 
   print(clapping);
 
   print(clapping);
 
   Runes input = new Runes('\u2665   \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}');
 
   print(new String.fromCharCodes(input));