dart基础

  1. void main(){
  2. print('li');
  3. var a = 1;//可以多次赋予
  4. print(a);
  5. final b = -2;//变量只能赋值一次
  6. print(b);
  7. const c = 3;//常量也不能修改
  8. int d = 4;//整型
  9. print(d.isEven);// 是否偶数 返回true
  10. print(d.isOdd);// 是否奇数 返回false
  11. print(b.abs());//取绝对值
  12. double e = 5.6;//浮点型 ~/这个是取整 %取余数
  13. print(e.round());//四舍五入
  14. print(e.floor());//不大于的最大整数
  15. print(e.ceil());//不小于的最小整数
  16. print(e.toInt());//change to int
  17. print(e.toDouble());//like his name
  18. //插值 这里一个很像format 或者是 %s
  19. print("d + b is ${d+b}");
  20. print('b is $b');//如果只是传一个参数就不用花括号了
  21. //string a = 'aaa';也可以使用3引号,多行。字符串前面加r 转义。
  22. //常用属性 length isEmpty isNotEmpty
  23. String ss = 'hhh123666666999999';
  24. print(ss.length);
  25. print(ss.isEmpty);
  26. //contains()是否包含,返回布尔值 索引indexOf() 大小写toLowerCase() toUpperCase()
  27. //trim()截取前后空格split()分隔 substring()截取。相当与python[0:4]
  28. print(ss.contains('hh'));
  29. print(ss.substring(0,4));
  30. //list ,const 不可变list,add()增加元素,insert(插入下标,元素) remove() clear()
  31. // sort() indexOf()返回位置 length长度属性 sublist()截取
  32. // shuffle()打乱 forEach()传入一个方法
  33. var list1 = const [1,2,3, 'ddd'];
  34. print(list1.sublist(0,2));
  35. list1.forEach(print);//循环这个list 调用这个方法
  36. //字典,.key .value containsKey() containsValue()
  37. var doc = {"h1":"here", "h2":"you", "h3":"are"};
  38. print(doc.keys);
  39. print(doc.values);
  40. print(doc.containsKey('hi'));//true
  41. }

list

list.asMap()//转list为字典 key为0,1,2…
//dynamic 动态类型 可以被赋予不同的值

++ —

a = 1;
print(a++)//先打印后加1
print(++a)//先加1再打印
dart 基础笔记 - 图1

??=

??= 赋值,上图中 b??=10的意思是如果b有值,那么b仍然是那个它原本该有的值,如果b没有值,那么b将会被赋予=之后的值。


条件表达式

三目运算符

  1. //条件表达式
  2. // 三目运算符condition?expr1:expr2
  3. // ??运算符expr1 ?? expr2
  4. void main(){
  5. int a = 1;
  6. String s = a == 1 ? "aaa" : "bbb";
  7. print(s);//aaa //a == 1 ? 如果是true
  8. //返回expr1 反之返回 expr2
  9. String z;
  10. String b = "java";
  11. var c = z ?? b;
  12. print(c);//java 如果两个那个值中有一个没有定义的话 返回另外一个,
  13. // 如果都定义了的话,返回第一个。如果都没有定义的话 返回 null
  14. }

if

  1. //条件表达式
  2. // if
  3. void main(){
  4. int a = 1;
  5. if(a > 0){
  6. print('1111');
  7. }else if(a == 0){
  8. print(-111);
  9. }else {
  10. print(000);
  11. }
  12. }

循环

for循环

for

  1. void main() {
  2. var list1 = [1,2,3,4,5,6,7,8,9,10];
  3. for(int index = 0; index < list1.length; index ++){//初始条件 操作,index++也可以写在花括号里
  4. print(list1[index]);//输出1到10
  5. }
  6. }

for in

  1. void main(){
  2. var list = [1,2,3];
  3. for (var item in list){
  4. if(item != 2){
  5. print(item);//1 3
  6. }
  7. }
  8. }
  9. //1 2 3 4

while循环

while

  1. void main() {
  2. int a = 0;
  3. while(a < 5){
  4. print(a++);
  5. }
  6. }
  7. //1 2 3 4

do… while…

  1. void main(){
  2. var b = 1;
  3. do{
  4. print(b++);
  5. }while(b > 0 && b < 5);
  6. }
  7. //1 2 3 4

break 和 continue

break 终止循环

  1. void main(){
  2. var list = [1,2,3];
  3. for (var item in list){
  4. if(item == 3){
  5. break;
  6. }
  7. print(item);
  8. }
  9. }
  10. // 1 2

提一下assert

如果布尔条件为false,则使用assert语句来中断正常执行。

  1. void main() {
  2. var a = 1;
  3. assert(a != 3);
  4. print(a);//1
  5. }
  6. void main() {
  7. var a = 1;
  8. assert(a != 1);
  9. print(a);//没有执行
  10. }

continue 跳出当前循环 继续循环

  1. void main(){
  2. var list = [1,2,3,4,5,6];
  3. for (var item in list){
  4. if(item == 2){
  5. continue;
  6. }
  7. print(item);
  8. }
  9. }
  10. //1 3 4 5 6

switch…case语句

  1. var command = 'OPEN';
  2. switch (command) {
  3. case 'CLOSED':
  4. executeClosed();
  5. break;
  6. case 'PENDING':
  7. executePending();
  8. break;
  9. case 'APPROVED':
  10. executeApproved();
  11. break;
  12. case 'DENIED':
  13. executeDenied();
  14. break;
  15. case 'OPEN':
  16. executeOpen();
  17. break;
  18. default://默认情况
  19. executeUnknown();
  20. }

与标签调用 标签可以自定义 test

dart 基础笔记 - 图2


try-catch-finally

  1. try {
  2. breedMoreLlamas();
  3. } catch (e) {
  4. print('Error: $e'); // Handle the exception first.
  5. } finally {
  6. cleanLlamaStalls(); // Then clean up.
  7. }