Flutter 学习(二)执行入口|变量|常量|数据类型|运算符|流程控制|关键字

本章主要学习:Dart入口的方法,变量,注释,常量,数据类型

1. 执行入口

// 无返回值入口方法
void main() {
  // 打印
   print('helloWorld');
}

main() {
  // 打印
  print('helloWorld');
}

2. 变量

2.1 String (字符串)

  // 未初始化,默认值null
  String str;
  print(str);

  // 字符串定义
  String s1 = 'helloWorld';
  print(s1);

  String s2 = '222';
  // 字符串拼接
  print(s1 + s2);

  //
  String s3 = '''你好,
  我们一起学习Dart ''';
  print(s3);

2.2 int (整数)

  // 未初始化,默认值null
  int n1;
  print(n1);
  
  int n2 = 100;
  print(n2);

2.3 double (小数)

  // 未初始化,默认值null
  double d1;
  print(d1);

  double d2 = 1.0;
  print(d2);

2.4 bool (布尔)

  // 未初始化,默认值null
  bool b1;
  print(b1);

  bool b2 = false;
  print(b2);

2.5 List ( 集合 )

  // 未初始化,默认值null
  List list;
  print(list);
  
  //创建一个int类型的list
  List list1 = [1, 2, 3];
  // 输出[1, 2, 3]
  print(list1);

  // 使用List的构造函数
  List list2 = new List();
  //添加单个元素
  list2.add(1);
  //添加多个元素
  list2.addAll([2, 3, 4, 5]);
  print(list2);
  // 获取集合长度
  print(list2.length);
  // / 获取第一个元素
  print(list2.first);
  // 获取元素最后一个元素
  print(list2.last);
  // 利用索引获取元素
  print(list2[0]);
  // 查找某个元素的索引号
  print(list2.indexOf(2));
  // 删除指定位置的元素,返回删除的元素
  print(list2.removeAt(0));
  // 删除指定元素,成功返回true,失败返回false
  // 如果集合里面有多个2, 只会删除集合中第一个改元素
  list2.remove(2);
  // 删除最后一个元素,返回删除的元素
  list2.removeLast();
  // 删除指定范围(索引)元素,含头不含尾
  list2.removeRange(0, 1);
  // 删除指定条件的元素(这里是数字大于2)
  list2.removeWhere((item) => item > 2);
  // 删除所有的元素
  list2.clear();
  print(list2);

  // 限定list的长度添加int参数,表示List固定长度,不能进行添加 删除操作
  List list3 = new List(1);
  // null
  print(list3[0]);
  // [null]
  print(list3);

2.6 Map (字典)

  // 未初始化,默认值null
  Map map;
  print(map);

  //创建一个map
  Map map1 = {'key': '0', 'value': '1'};
  // {key: 0, value: 1}
  print(map1);

  //先声明一个map,再赋值
  Map map2 = new Map();
  map2['key'] = '0';
  map2['value'] = '1';
  // {key: 0, value: 1}
  print(map2);

  // 指定键值对参数类型
  var map3 = new Map<int, String>();
  // Map的赋值,中括号中是Key,这里可不是数组
  map3[1] = '123';
  //Map中的键值对是唯一的Key如果存在,Value会覆盖之前的数据
  map3[1] = '321';
  // map里面的value可以相同
  map3[2] = '123';
  // map里面value可以为空字符串
  map3[3] = '';
  // map里面的value可以为null
  map3[4] = null;
  print(map3);
  // 查看Map是否含有某Key
  print(map3.containsKey(1));
  //删除某个键值对
  map3.remove(1);
  print(map3);

2.7 var|Object|dynamic (动态类型)

  // 定义变量,没有明确类型,编译的时候根据值明确类型  
  var str1 = 'helloWorld';
  Object str2 = '张三';
  dynamic str3 = '李四';
  print(str1);
  print(str2);
  print(str3);

3. 常量

  // 使用final 或者 const 定义时就必须初始化,并且值只能设置一次
  final String str = '1';
  const String str2 = '2';

  //无法再次赋值 The final variable 'str' can only be set once
  // str = '3';
  // str2 = '3';

  //flnal 或者 const 不能和 var 同时使用
  // final var str3= '3';
  // const var str3= '3';

4. 运算符

描述操作符
一元后置操作符expr++ expr-- () [] . ?.
一元前置操作符expr !expr ~expr ++expr --expr
乘除* / % ~/
加减+ -
位移<< >>
按位与&
按位或  
按位异或^
逻辑与&&
逻辑或   
关系和类型判断>= > <= < as is is!
== !=
如果为空??
条件表达式expr1 ? expr2 : expr3
赋值= *= /= ~/= %= += -= <<= >>= &= ^= = ??=
级联..

5.  流程控制

  • if...else
  • for
  • while do-whild
  • break continue
  • switch...case
  • assert(仅在checked模式有效)
int i = 0;
  // 单独一个条件
  if (i == 0) {
    print('i==0');
  }
  // 对立条件
  if (i != 0) {
    print('i!=0');
  } else {
    print('i==0');
  }
  // 多条件
  if (i > 0) {
    print('i>0');
  } else if (i < 0) {
    print('i<0');
  } else {
    print('i==0');
  }

  // 循环
  for (int j = 0; j < i; j++) {
    print(j);
  }

  for (int j = 1; j <= 100; j++) {
    if (j == 100) {
      // 退出循环
      break;
    }
    if (j % 2 != 0) {
      // 跳过接下来的操作
      continue;
    }
    print(j);
  }

  // 循环
  while (i == 0) {
    i += 1;
  }

  // 不管while里的条件是否满足,都会先执行一次方法体
  do {
    i += 1;
    print('i==0');
  } while (i == 0);

  //
  switch (i) {
    case 1:
      print('我是1');
      break;
    case 2:
      print('我是2');
      break;
    default:
      print('我是默认');
  }

注意:

break

  1. 在switch语句中使用流程跳出switch结构。
  2. 在循环语句中使流程跳出当前循环,遇到break循环终止,后面代码也不会执行。
  3. 如果在循环中已经执行了breck语句,就不会执行循环体中位于breck后的语句。
  4. 在多层循环中,一个break语句只能向外跳出一层。
  5. break可以用在switch case中 也可以用在for 循环中和while循环中

continue

  1. 只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句。
  2. continue可以用在for循环以及while循环中,但是不建议用在while循环中,容易死循环。

6. 关键字

关键字---
abstractdoimportsuper
asdynamicinswitch
assertelseinterfacesync*
enumimplementsisthis
async*exportlibrarythrow
awaitexternalmixintrue
breakextendsnewtry
casefactorynulltypedef
catchfalseoperatorvar
classfinalpartvoid
constfinallyrethrowwhile
continueforreturnwith
covariantgetsetyield*
defaultifstaticdeferred
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值