数组 , 字典 , 算术运算符 , 关系运算符 , 逻辑运算符 , 条件表达式 , 三目运算
List定义数组的两种方式
< >指限制数组内容为指定类型
数组内容编号从0开始,如: 例1中111为0,abc为1,333为2
例1:
1
2
3
4var a=[111,'abc',333]; //第一种定义数组的方式
print(a); //输出[111 abc 333]
print(a.length); //指数组的内容长度,有三个内容所以 输出:3
print(a[0]); //指输出数组a中的0号内容 输出: 111例2:
1
2
3
4
5var b=new List<String>(); //第二种定义数组的方式 < >表示限定内容为String字符串内容
b.add('张三'); //第二种方法需要用.add方法或者.addall方法给数组添加内容
b.add(123); //数组b限制内容为字符串类型 123因为没有带引号所以是数值内容 所以是错误的 X
b.add('李四');
print(b[1]); //输出数组b的1的内容 因为b.add(123);是错误的内容 需要删除掉 所以1为李四 输出:李四
Map定义集合的两种方式
例1:
1
2
3
4
5
6
7
8var person={
'name':'张三', //定义key'name'的value(内容)为张三
'age':20 //定义key'age'的value(内容)为20
};
print(person); //输出:{name:张三,age:20}
print(person['name']); //输出name的value: 张三
print(person['age']); //输出age的value: 20
print(person['张三']); //不能使用value来输出key 所以是错误的 X例2:
1
2
3
4
5
6
7var p=new Map();
p['name']='李四'; //name为key 李四为value
p['age']=20;
p['work']=['送外卖','程序员']; //同时可在map中掺杂list数组 即work的value可以是一个数组
print(p); //输出: {name:李四,age:20,work:[送外卖,程序员]}
print(p['work']); //单独打印map p中的work的value 输出数组: [送外卖,程序员]
print(p['work'][0]); //也可以只打印key work的数组value中的0 输出: 送外卖is判断语句
通过 ‘ is ‘ 关键词判断类型: 当你不知道服务器返回的数据是什么类型可以通过is关键词判断数据类型 例如:
1
2
3
4
5
6
7
8var str='123'; //定义str为 字符串类型内容是123
if(str is String){ //如果str is String
print('str是String类型'); //就打印输出
}else if(str is int){ //否则 如果 str is int
print('str是int类型'); //就打印输出
}else{ //否则
print('其他类型'); //打印输出
} //因为是字符串类型所以 输出: str是String类型关系运算符
关系运算符
关系运算符有:
==(等于) , !=(不等于) , >(大于) , <(小于) , >=(大于等于) , <=(小于等于)
逻辑运算符
逻辑运算符有:
!(取反) , &&(并且) , ||(或者)
或者||: 全部为false的话值为false,否则值为true
并且&&: 全部为true的话值为true,否则值为false
赋值运算
赋值运算有:
= , ??= , ??
??= :表示如果b为空的话吧23赋值给b
1
2
3
4例1: 例2:
int b; //定义一个int类型的b 没有赋值 int b=3; //定义一个int类型b 赋值3
b??=23; //b??=23 b??=23; //b??=23
print(b);//因为b没有赋值所以输出: 23 print(b); //因为b有赋值3 所以输出: 3??: 表示如果 a??10 a为空,则吧10赋予a,如果a自有数值则不赋予,例1:
1
2
3var a; //定义一个a 内容为空
var b=a??10; //b=a??10 从右往左看先看a??10,因为a为空所以吧10赋予a 然后在看b=a 所以b=10
print(b); //输出: 10例2:
1
2
3var a=22; //赋值a=22
var b=a??10; //因为a有内容所以并不会吧10赋予a所以a=22 所以b=a的时候b=22
print(b); //输出: 22
复合赋值运算
+= , -= , *= , /= , %=(取余) , ~/=(取整)
1
2
3a+=10 //表示a=a+10;
a*=10 //表示a=a*10;
a~/=10 //表示a=a~/10;
条件表达式
条件表达式有很多种
如:’if….else’ ‘switch…..case’
switch….case的使用方法如:
1
2
3
4
5
6
7
8
9
10
11
12var sex='女'; //switch(开关) case(具体,事例)
switch(sex){ //switch sex
case'男': //case 男
print('他是男的'); //打印输出
break; //结束
case'女': //case 女
print('她是女的'); //打印输出
break; //结束
default: //如果两个case都不对
print('传入数据错误'); //打印输出
break; //结束
} //因为case是女所以输出: 她是女的
三目运算
例1: 如果flag=true,吧’我是true’赋予c
1
2
3
4
5
6
7
8bool flag=true; //bool类型flag定义为true
var c; //定义一个C 内容为空
if(flag){
c='我是true';
}else{
c='我是false';
}
print(c); //输出: 我是true吧正常if else 转换为三目预算来减化为:
1
2
3bool flag=true;
String c=flag?'我是true':'我是false'; //?为if,:为else
print(c); //输出: 我是true