MENU

Dart入门2:变量

December 15, 2024 • Dart

Dart变量

1.数字

  • 分为 int,double 以及num 类型,num是int和double的集合
  int n = 3;
  double n = 3.5;
  num n = 3;
  num n = 3.5;
  • 常用的api,记住,所有的变量都是对象,可以使用 . 来访问其定义的方法,如下
  num n = 3.5;

  //取绝对值
  print(n.abs());

  //转换为字符串
  print(n.toString()); 

  //取余数
  print(n.remainder(5));

  //返回比大小结果
  print(n.compareTo(10));

2.字符串

  • 只有 String 类型,单双引号都可以,三个引号也可以,三个引号可以包含换行符的字符串
  • 正则表达式使用字符串
  RegExp(r'正则表达式字符串');

  String str1 = "hello world";
  String str2 = "!";

  //使用 + 拼接
  print(str1 + str2);

  //使用 变量引用方式拼接
  print("$str1 $str2");

  //字符串分割,如果不传参数,则分割字符都会分割,最终形成一个字符数组,中间以逗号隔开
  print(str1.split(''));

  //传入空格符,则只会到匹配到空格符的地方分割
  print(str1.split(' '));

  //去除字符串的空格
  print(str3.trim());

  //判断字符串是否空
  print(str1.isEmpty);
  print(str1.isNotEmpty);

  //字符串替换
  print(str1.replaceAll("world", "dart"));

 //字符串正则匹配替换
  print(str1.replaceAll(RegExp(r"\d+"), '_'));

  //字符串查找
  print(str1.contains("lo "));

  //字符串定位
  print(str1.indexOf("ll"));

bool

  • bool只有两个值,true和false,最好显示的判断bool的真假

list数组

  • Dart中的数组,由对象 List 表示,有两种声明方式
  //字面量方式
  List mylist = [];  //不限定数据类型
  List mylist = <int>[]; //限定数据类型为int

  //构造函数方式
  List mylist = new List.empty(growable:true);  //不限长度的空列表,growable,可命名参数,使用方法是  参数:值
  List mylist = new List.filled(5, "str");  //声明指定长度的填充列表
  • 扩展操作符 ...
  List mylist2 = ["i", ...mylist]; //拼接list
  • 常用api
  List mylist = ['a', 'b', 'c', 1, 2, 3]; //声明不限制类型数组

  //添加元素
  mylist.add(4);  

  //求长度
  print(mylist.length);

 //反转的数据已经不是数组了,需要再次转换为数组
  print(mylist.reversed.toList());
  
  //添加多个元素
  mylist.addAll([4, 5, 6]);

  //指定位置删除/添加元素,清空,合并元素等等
  • 遍历列表

    • for 循环
      c 风格循环
    • for in 循环
      变量迭代循环
    • forEach()
      遍历列表
    • map()
      遍历并处理元素,然后生成新的列表
    • where()

      返回满足条件的数据

    • any()
      只要有一项满足条件,即返回 true
    • every()
      判断是否每一项都满足条件,都满足条件才返回 true

[!NOTE]

此处引入一些语法,例如 => 的使用,该箭头后跟着一行代码,整体表示只有一行代码的函数

  bool isodd(n) => n % 2 == 0;
  var oddnum = mylist.where((e) => isodd(e));
  • 多维数组,可以有api将其展开
  var pairs = [
    [1, 2],
    [3, 4]
  ];

set 无序且去重的集合

  • Set 是一个无序的,元素唯一的集合
  • Set有字面量和构造函数两种声明方式 (字面量中用大括号)
  • 无法通过下标取值
  • 具有集合特有的操作

    • 例如: 求交集,并集、 差集等,都有api
  • set和数组可以相互转换,但数组转set时会自动去重
  // 字面量声明  
  var myset = <int>{1, 2, 3};

  //构造函数声明
  var myset = new Set(); 

map

  • Map 是一个无序的键值对 (key-value)映射。通常被称作哈希或字典。
  • 声明方式,两种

    • var map = {key1: value1, key2: value2};
    • var map = new Map();
    • map[key'’] = value;