Dart中的类型

Dart学习(一)

const与final

  1. 两者都用于在dart中定义常量,都只能赋值一次;
  2. 区别:const是编译时常量,必须在定义时赋值明确的值;final是运行时常量,惰性初始化 ,即在运行时第一次使用前初始化,并且拥有const编译时常量的特性。

Dart中的字符串

多行字符串

在dart中可以用三个单引号或双引号声明一个多行字符串。

// example
String str = '''bar
				bar
				bar''';

字符串拼接

在dart中可以在字符串中使用$或字符串间加+来拼接两个或多个字符串。

// example
String str1 = 'bar1'
String str2 = 'bar2'
print("$str1 $str2")
print(str1 + ' ' + str2)

Dart中的数值类型

在dart中整型使用int关键字声明,浮点型使用double声明,运算符与js中相同。

Dart中的布尔类型

在dart中布尔类型使用bool关键字声明。
dart中==不会对两边变量进行类型转换,不同类型的值一定不相等。

Dart中的List类型(数组/集合)

为List指定类型

在定义时可以用<>为List指定类型。

// example
String list1 = <String>['a', 'b'];
String list1 = <int>[1, 2];

创建固定长度的集合

在dart中使用[]定义的集合可以使用add方法为集合新增元素;
使用List.filled(length, fill)创建的集合被指定了长度,只能修改,不能新增,也不能修改集合的长度;

// example
var list1 = List.filled(2, "");

List.filled(length, fill)创建的集合也可以指定类型,语法为List<>.filled(length, fill),不写默认根据fill进行类型推导。

// example
var list1 = List<String>.filled(2, "");

List中的常见属性

  1. length:集合长度;
  2. isEmpty:集合是否为空;
  3. isNotEmpty:集合是否不为空;
  4. reversed:集合倒序,排序后的数据并不是一个集合,可以通过.toList()将倒序后的数据转换为一个新集合;

List中的常用方法

  1. add():为集合新增元素,与js中的push()类似;
  2. addAll():为集合拼接一个集合;
  3. indexOf():查找集合中指定元素的索引,查找不到返回-1;
  4. remove():删除元素,需要传入一个元素;
  5. removeAt():根据索引删除元素;
  6. fillRange(start,end,fill):修改索引start(包括),到end(不包括)的元素为fill;
  7. insert(index,fill): 在索引index前插入fill元素;
  8. insertAll(index,list): 在索引index前插入list集合中的所有元素;
  9. join(str):将集合以str拼接为字符串;
  10. toList():用于将类数组转换为一个集合;
  11. 遍历方法与Set,Map通用

Dart中的Set

Set中的元素无序且唯一,不能通过索引获取值;
一般使用Set对List进行去重,使用方法与js中的基本相似;

Dart中的Maps类型(字典)

dart中通过{}或new Map()创建字典类型,类似js,使用或修改字典的属性通过[‘key’]的方式。

// example
var person = {
  "name": "aaa",
  "age": 36
};

var person2 = new Map();
person2["name"] = "bbb";

print(person["name"]);
print(person2["name"]);

Map中的常见属性

  1. keys:Map中所有的键名,可以通过.toList()转换为集合;
  2. values:Map中所有的值,可以通过.toList()转换为集合;
  3. isEmpty:Map是否为空;
  4. isNotEmpty:Map是否不为空;

Map中的常用方法

  1. addAll({…}):为Map增加另一个Map中的全部键值对;
  2. remove(key):删除Map中的key对应的键值对;
  3. containsValue(value):查找映射中是否有value值;
  4. 遍历方法与Set,List通用

Set,Map与List的通用方法

  1. forEach():遍历方法,与js中的forEach相似;
  2. map():遍历并生成新的Set,Map或List,与js中的map相似;
  3. where():遍历生成符合条件的Set,Map或List,与js中的filter相似;
  4. any():遍历查看当前Set,Map或List是否有任意满足条件的数据,有则返回true,与js中的some相似;
  5. every():遍历查看当前Set,Map或List是否所有数据都满足条件,是则返回true,与js中的every相似;

Dart中判断数据类型

在dart中可以使用is关键字来判断类型

Dart中的运算符

  1. 算术运算符:与js基本相似(~/表示取整)。
  2. 关系运算符:与js基本相似,不会做类型转换。
  3. 逻辑运算符:与js基本相似。
  4. 赋值运算符:=与js类似,??=表示变量为空为其赋值=后的值。

Dart中的类型转换

Number与String类型之间的转换

  1. Number =》 String:toString()方法。
  2. String =》 Number:int.parse()/double.parse()方法。

其他类型转换为Boolean类型

  1. isEmpty:判断字符串是否为空。
  2. == null:判断变量是否赋值。
  3. isNaN:判断变量值是否为NaN。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值