dart基础
void main(){print('li');var a = 1;//可以多次赋予print(a);final b = -2;//变量只能赋值一次print(b);const c = 3;//常量也不能修改int d = 4;//整型print(d.isEven);// 是否偶数 返回trueprint(d.isOdd);// 是否奇数 返回falseprint(b.abs());//取绝对值double e = 5.6;//浮点型 ~/这个是取整 %取余数print(e.round());//四舍五入print(e.floor());//不大于的最大整数print(e.ceil());//不小于的最小整数print(e.toInt());//change to intprint(e.toDouble());//like his name//插值 这里一个很像format 或者是 %sprint("d + b is ${d+b}");print('b is $b');//如果只是传一个参数就不用花括号了//string a = 'aaa';也可以使用3引号,多行。字符串前面加r 转义。//常用属性 length isEmpty isNotEmptyString ss = 'hhh123666666999999';print(ss.length);print(ss.isEmpty);//contains()是否包含,返回布尔值 索引indexOf() 大小写toLowerCase() toUpperCase()//trim()截取前后空格split()分隔 substring()截取。相当与python[0:4]print(ss.contains('hh'));print(ss.substring(0,4));//list ,const 不可变list,add()增加元素,insert(插入下标,元素) remove() clear()// sort() indexOf()返回位置 length长度属性 sublist()截取// shuffle()打乱 forEach()传入一个方法var list1 = const [1,2,3, 'ddd'];print(list1.sublist(0,2));list1.forEach(print);//循环这个list 调用这个方法//字典,.key .value containsKey() containsValue()var doc = {"h1":"here", "h2":"you", "h3":"are"};print(doc.keys);print(doc.values);print(doc.containsKey('hi'));//true}
list
list.asMap()//转list为字典 key为0,1,2…
//dynamic 动态类型 可以被赋予不同的值
++ —
a = 1;
print(a++)//先打印后加1
print(++a)//先加1再打印
??=
??= 赋值,上图中 b??=10的意思是如果b有值,那么b仍然是那个它原本该有的值,如果b没有值,那么b将会被赋予=之后的值。
条件表达式
三目运算符
//条件表达式// 三目运算符condition?expr1:expr2// ??运算符expr1 ?? expr2void main(){int a = 1;String s = a == 1 ? "aaa" : "bbb";print(s);//aaa //a == 1 ? 如果是true//返回expr1 反之返回 expr2String z;String b = "java";var c = z ?? b;print(c);//java 如果两个那个值中有一个没有定义的话 返回另外一个,// 如果都定义了的话,返回第一个。如果都没有定义的话 返回 null}
if
//条件表达式// ifvoid main(){int a = 1;if(a > 0){print('1111');}else if(a == 0){print(-111);}else {print(000);}}
循环
for循环
for
void main() {var list1 = [1,2,3,4,5,6,7,8,9,10];for(int index = 0; index < list1.length; index ++){//初始条件 操作,index++也可以写在花括号里print(list1[index]);//输出1到10}}
for in
void main(){var list = [1,2,3];for (var item in list){if(item != 2){print(item);//1 3}}}//1 2 3 4
while循环
while
void main() {int a = 0;while(a < 5){print(a++);}}//1 2 3 4
do… while…
void main(){var b = 1;do{print(b++);}while(b > 0 && b < 5);}//1 2 3 4
break 和 continue
break 终止循环
void main(){var list = [1,2,3];for (var item in list){if(item == 3){break;}print(item);}}// 1 2
提一下assert
如果布尔条件为false,则使用assert语句来中断正常执行。
void main() {var a = 1;assert(a != 3);print(a);//1}void main() {var a = 1;assert(a != 1);print(a);//没有执行}
continue 跳出当前循环 继续循环
void main(){var list = [1,2,3,4,5,6];for (var item in list){if(item == 2){continue;}print(item);}}//1 3 4 5 6
switch…case语句
var command = 'OPEN';switch (command) {case 'CLOSED':executeClosed();break;case 'PENDING':executePending();break;case 'APPROVED':executeApproved();break;case 'DENIED':executeDenied();break;case 'OPEN':executeOpen();break;default://默认情况executeUnknown();}
与标签调用 标签可以自定义 test

try-catch-finally
try {breedMoreLlamas();} catch (e) {print('Error: $e'); // Handle the exception first.} finally {cleanLlamaStalls(); // Then clean up.}
