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

2022-07-28,,,,

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

  • Flutter 学习(一)环境搭建以及开发工具配置
  • Flutter 学习(二)执行入口|变量|常量|数据类型|运算符|流程控制|关键字

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. 关键字

关键字 - - -
abstract do import super
as dynamic in switch
assert else interface sync*
enum implements is this
async* export library throw
await external mixin true
break extends new try
case factory null typedef
catch false operator var
class final part void
const finally rethrow while
continue for return with
covariant get set yield*
default if static deferred

本文地址:https://blog.csdn.net/itjavaee/article/details/109264720

《Flutter 执行入口|变量|常量|数据类型|运算符|流程控制|关键字.doc》

下载本文的Word格式文档,以方便收藏与打印。