Flutter开发Dart极速入门 (基本类型)

Dart入门系列:
Flutter开发Dart极速入门 (基本类型)
Flutter开发Dart极速入门 (变量)
Flutter开发Dart极速入门 (函数)
Flutter开发Dart极速入门 (操作符与流程控制语句)
Flutter开发Dart极速入门 (异常)
Flutter开发Dart极速入门 (类和对象)
Flutter开发Dart极速入门 (泛型)
Flutter开发Dart极速入门 (Dart异步详解)
Flutter开发Dart极速入门 (生成器)
Flutter开发Dart极速入门 (库的使用)
Flutter插件化开发注意事项(Packages与插件化开发)
Flutter在Android原生工程中的集成

基本类型

Number数值

  • int: 整数值

  • double: 64-bit 双精度浮点数

  • int和double是Number的子类

  • string 转换成 int

    int i = int.parse('1');
    
  • 当给一个double类型赋一个int值时, 会自动转成double

String字符串

  • Dart的字符串是utf-16编码的字符序列, 可以使用 ’ ’ 或 " " 初始化

  • 可以使用三个单引号或双引号来创建多行字符串对象

  • 可以使用 r 前缀创建"raw"字符串

    // 使用r屏蔽/转义
      var strType2 = 'test1 \ntest2 ';	// print输出结果 \n有换行效果
      var strType2r = r'test1 \n test2';	// print输出: test1 \n test2
    
  • 可以在字符串中使用表达式: ${expression} , 如果表达式是一个标识符, 可以省略 {}, 如果表达式是一个对象, 则dart会自动调用对象的同String()来获取一个字符串

  • StringBuffer

      StringBuffer sb = StringBuffer();
      sb..write('obj1')..write("...")..write("obj2");
      print('value: $sb'); // value: obj1...obj2
    

bool布尔类型

  • bool 对象未初始化的默认值是null

list列表(数组)类型

  • List 也是对象, Dart可以直接打印 List 包括 List 的元素

  • Java中直接打印 List 的结果是地址值

  • 有增删改查, 支持倒序, 自带排序、洗牌, 可使用+将两个 List 合并

    List mList = List();  // 创建一个不固定长度的List
    mList = [1,3,2,5,4];  // 赋值
    int first = mList.first;
    print(mList.first); // 取出第一个元素
    print(mList.last); // 取出最后一个元素
    print(mList.length); // 获取长度
    print(mList.isEmpty); // 是否为空
    print(mList.isNotEmpty); // 是否不为空
    print(mList.reversed); // 倒序
    print(mList..add(6)); // 增
    print(mList..addAll([7,9,8])); // 增加多个
    print(mList..remove(6)); // 删
    print(mList..removeAt(1)); // 删除某位置
    mList[1] = 66;
    print(mList); // 改
    print(mList..fillRange(1, 3, 9)); //设置第一到第二个的值为9: print [1, 9, 9, 4, 7, 9, 8]
    print(mList.contains(9)); // 查: 是否包含
    print(mList.indexOf(7));  // 查: 取得元素下标
    print(mList..sort()); // 排序
    print(mList..shuffle()); // 洗牌(随机乱序)
    var mList2 = mList.sublist(0, 3);
    print(mList2);  // 截取
    print(mList+mList2); // 合并
    

Set集合

  • Set – 无重复列表

    var dynamicSet = Set();
    dynamicSet.add('str');
    print('dynamicset: ${dynamicSet}');
    
  • set1.difference(set2) 返回set1中有但set2中没有的元素

  • set1.intersection(set2) 返回set1与set2的交集

  • set1.union(set2) 返回set1与set2的并集

  • set1.retainAll([‘xxx’, ‘xxxxx’]) 只保留: set1中只保留这些元素(元素要先在set1中存在)

Map集合

  • 与 Java 类似
    // 动态类型
    var dynamicMap = Map();
    dynamicMap['name'] = 'Elvis';
    dynamicMap['age'] = 26;
    dynamicMap[1] = '1';
    print(dynamicMap);
    // 强类型
    var mMap = Map<int, String>();
    mMap[1] = 'android';
    mMap[2] = 'dart';
    mMap[3] = 'flutter';
    // 其他写法
    var map1 = {1:'android1', 'name':'Elvis1'};
    // 常用属性
    print(map1..addAll(mMap));  // 合并, 注意相同的key map1中的数据会被mMap中的数据替换
    print(map1.isEmpty);
    print(map1.isNotEmpty);
    print(map1.length);
    print(map1.keys); // key的集合
    print(map1.values); //value 的集合
    

Runes符号字符

Runes runes = new Runes('\u{1f605} \u6211');
var str1 = String.fromCharCodes(runes); //使用String.fromCharCodes显示字符图形
print(str1);
String str2 = '\u{1f605} \u6211'; //如果非4个数值,需要把编码值放到大括号中
print(str2);

Symbols标识符

  • 用于反射, 目前反射模块已被移除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值