[flutter]1、基本语法

2021-10-17  本文已影响0人  史记_d5da

1、number

// dart的数据类型
void numType() {
  var a = 1;
  double b = 0;
  int c = 9;
  print(c.isEven);
  print(c.isOdd);
  print(a + b);
}

2、string

void stringDemo() {
  var a = "sj";
  print(a + "aa");
  // 多行
  var b = "sss\n"
  "ccc\n"
  "ddd";
  print(b);

  // 三引号
  String str1 = '''sss
  aaa
  ddd''';
  print(str1);
  int c = 10;
  int d = 20;
  print('c + d = ${c + d}');
  String str2 = "Hello\nWorld"; // 换行
  String str3 = r"Hello\nWorld"; // r去除转义,直接打印
  print(str2);
  print(str3);
}

3、list

void listDemo() {
  // 创建可变list
  var list1 = [1,2,3,"sj"];
  print(list1[3]);
  list1[3] = "zh";
  print(list1[3]);
  // 不可变list
  var list2 = const[1,2,3];
  print(list2);
  var list3 = ["china", "american", "japan"];
  list3.insert(1, "carian");
  list3.remove("american");
  list3.clear();
  print(list3);
  var list4 = [1,4,2,6,5,3];
  list4.sort();
  print(list4);
  print(list4.sublist(4,7));
}

4、map

void mapDemo() {
  // 可变的map
  var json1 = {'one': 'chinese', 'two': 'english'};
  print(json1['one']); // 取值
  json1['one'] = 'cn';
  // 不可变的map
  var json2 = const {'one': 'chinese', 'two': 'english'};
  print(json2.length);
  print(json2.values);
  print(json2.keys);
  var list = ['china', 'england', 'japan'];
  print(list.asMap());// {0: china, 1: england, 2: japan}
}

5、运算符

void operatorDemo() {
  var a;
  // 当a为空 a赋值为10,否则不赋值
  a ??= 10; // 10
  a ??= 5; // 10
  print(a);

  var b;
  b = 5;
  // 如果左边有值,返回左边,否则返回右边
  print(b ?? a);
}

6、函数

/*
* Dart中的方法
* 方法也是一个对象
* 返回值和参数类型可以省略
* 当方法的执行语句只有一句的时候,可以使用箭头函数 => 表达式
* 可选参:传递参数的时候必须带上形参的名字
* 匿名方法:没有方法名
* */
void functionDemo() {
  print(sum(10, 20));
  print(sum1(1, b: 3));
  print(sum2(1, 2, 3));
  var func = () {
    print("匿名方法");
  };
  func();
  // 立即执行匿名函数
  ((){
    print("立即执行");
  })();
  // 匿名方法作为参数
  var list = [1,2,3,4];
  forEachDemo(list, (var a) {
    b++;
    print('元素$b = $a');
  });

}
sum(a,b) => a + b;
// b,c可选参
// b, c必须是可选类型
// 或者 sum1(int a, {int? b, int? c})
sum1(int a, {b, c}) {
  b ??= 0;
  c ??= 0;
  return a - b + c;
}
// 默认值基于位置传递的
// 调用时可以不加名称
int sum2(int a, [int b = 0, int c = 0]) {
  return a + b + c;
}
forEachDemo(List list, void func(var element)) {
  for (var e in list) func(e);
}
int b = 0;
printElement(var a) {
  b ++;
  print('元素$b = $a');
}
void functionDemo1() => print("Hello World");

7、闭包

/*
* 闭包 closure
* 定义在函数里面的函数就是闭包,闭包也是一个对象。
* 闭包的作用:可以访问外部函数的局部变量。
* */
void closureDemo() {
  var func = funA();
  func(); // 0
  func(); // 1
  func(); // 2
}
funA() {
  int count = 0;
  // 匿名函数为闭包
  // 并且持有局部变量 count
  return ()=>print(count ++);
}
上一篇下一篇

猜你喜欢

热点阅读