dart基础知识

常用数据类型:

Numbers: int double

Strings: String

Booleans:bool

List数组

Maps字典

 

不常用:

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

Symbols dart程序中声明的运算符或者标志符号,不常用

 

定义各种类型变量:

int a = 2;

double b = 2.3;

String c = 'aabb';

String d = 'bbcc';

print('''a

b

c''');

print(c+''+d);

 

var a = 123;

var b= 324;

var c = false;

bool d = true;

if(a == b)

 

定义list 1 不指定类型

List lll = ["张三",23,true];

print(lll);

print(lll.length);

print(lll[0]);

print(lll[1]);

定义list 2 指定类型

var lll2 = <String>["aaa","123","李五"];

定义list 3 增加数据

var lll3 = [];

lll3.add("张三");

lll3.add(222);

lll3.add(true);

定义list 4 固定长度,长度固定 初始化后不能修改长度,上面的方式创建的list长度是可以变得

var lll5 = List.filled(6, "");//创建固定长度list
lll5[0] = "张三";
lll5.add("lisi");//固定长度不能添加,错误写法

var lll5 = List<String>.filled(6, "");//创建固定长度list,指定类型

 

修改从第a个到第b-1个的值:

lll3.fillRange(a, b,"aaa");把第二个修改为aaa

插入

lll3.insert(1,"aaa");在第一个之前插入

lll3.insertAll(1,["aaa","bbb"]);

 

遍历list

for(var item in lll3){

print(item);

}

 

list.forEach((value){

  print("$value");

});

修改list数据

var newList = list.map((value){

return value*2;//每项值乘以2

});

List查找数据

var newList = list.where((value){

return value>2;//找出大于2的值

});

 

var newList = list.any((value){

return value>2;//有大于2的就返回true

});

var newList = list.every((value){

return value>2;//都大于2的就返回true

});

 

List转字符串

var str = list.join("-");拼接

 

Map创建

var person={
  "name":"张三",
  "age":12
};
print(person["name"]);
print(person["age"]);

var p = new Map();
p["name"] = "lisi";
p["age"] = 12;
p["work"] = ["程序员","送外卖","炒股"];
print(p["work"]);

List s = p.keys.toList();

List s = p.values.toList();

if(p.isEmpty)

if(p.isNotEmpty)

if(p.containsValue("lisi"))

Set创建(不能存放相同值)

var s = new Set();

s.add("aaa");

s.add("bbb");===>{aaa,bbb}

s.toList();===>[aaa,bbb]

 

数组去重:

List list = ["aaa","aaa","bbb","bbb","aaa"];

set.addAll(list);

s==>{aaa,bbb}

 

判断类型

var str = "1234";

if(str is String)

 

??= 表示如果b为空,则赋值

var b = 12;

b ??=10;

print(b); 打印出12

 

相比于java 增加了

~/取整  

?? 

var a = 12;

var b = a ?? 10;如果a为空,则把10赋值给b,a不为空,则把a赋值给b

 

自执行方法:

((){

})();

递归:

int sum = 0;

fn(int n){

  sum+=n;

  if(n >0){

  f(n-1); 

}

}

 

闭包:

函数嵌套函数,并且返回里面的方法

fn(){

  var a = 123;

  return (){

    a++;

    print(a);

  }

}

var b = fn();

b();

b();

b();

print==>124  125  126

对象操作符:

? 条件运算符

as 类型转换 

is 类型判断

..  级联操作(连缀)

var p = new Person();

(p as Person).printInfo();类型转换 

 

p.name = "zhangsan";

p.age = 22;

p.printInfo();

===>连缀:

p..name="zhangsan"

 ..age=20

 ..printInfo();

 

 

 

Guess you like

Origin blog.csdn.net/qwildwolf/article/details/117918204