本文正在参加「金石计划 . 瓜分6万现金大奖」

前言

通过大概两个星期的空闲时刻学习,我简单的过了一遍Flutter的言语Dart,其实这门言语与Java和Kotlin有很多相似的当地,需求重新学习的当地很少,但有些不同的当地咱们就需求独自来记忆下,所以本篇将一些需求留意的不同点在Dart语法体系中拎出来,防止后边学习的时分呈现忘记能够快速回顾。

正篇

首要写Dart需求咱们先搭好Flutter环境(详见上篇安卓开发学Flutter——安装与构建环境的一些留意点(第一篇) – ()),然后新建一个Dart文件即可开始学习编写:

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

第一点 关键字留意点

首要,Dart言语上规则默许情况下,声明的量都是可变量,不过它也有Kotlin中的var,能够用于表明变量为可变量,并且不必指定变量类型,但这种办法在Dart中不引荐,最好仍是明确变量类型,此外每句代码结尾也要带上“;”,这和Java又相似,Kotlin是句末不需求带此符号的。

安卓开发学Flutter——Dart语法的一些注意点(第二篇)
此外还有数据类型里多了一个num

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

**num**既能够表明整数,也能够表明小数,根据你赋予的数字类型自己判断。

第二点 函数留意点

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

函数方面,首要不需求和Kotlin一样要**fun**关键字来标识为函数办法,和Java差不多的界说办法,但假如返回的为一行代码能够用“=>”去省写

安卓开发学Flutter——Dart语法的一些注意点(第二篇)
除此以外,Dart又多了很多其他参数运用办法,如下:

1.命名参数

用“{}”和关键字required来命名参数

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

//命名参数
void demo4({
  required int x,
  required int y
}) {
  x = x * y;
}
//调用采用命名参数的函数不必按参数次序
demo4(y: 5, x: 3);

这种办法的好处便是调用的时分不必按参数次序写入参数。

2.默许参数

与命名参数相似,不过不必运用required关键字且要在声明参数时分就给赋值

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

//默许参数
int demo5({
  int x = 5,
  int y = 6,
}) {
  return x + y;
}
//默许参数不必指定参数值,当然也能够运用参数值让默许值失效
demo5();
demo5(x: 1, y: 2);

这种也是一个很方便的办法。

3.方位参数

这种是和命名参数有着相反的规则,”[]”里的有必要按次序传参,如下:

//方位参数,需求严厉按方位传参,在和如日期相关的时分会用到
String demo6(int year,
    [int month = 1,
      int day = 1,
      int hour = 0,
      int minute = 0,
      int second = 0]) {
  return '$year$month$day$minute$second';
}

还有咱们Dart封装好供给的日期办法也是运用方位参数:

安卓开发学Flutter——Dart语法的一些注意点(第二篇)
这其间year参数为有必要传参,后边”[]”中参数要按次序填但是选填,原因是咱们声明参数时已经赋予了默许值。

此外,能够自界说函数办法,还能将函数办法视为目标,并且能够作为参数放入函数:

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

typedef Demo  = int Function(int);
Demo demo7 = demo;
//函数能够当成目标,并且能够入参办法
int demo8(int a, {Demo? demo}) {
  if (demo == null) return a;
  return demo(a);
}

这算是和我平时安卓原生开发最大的一点不同了。

第三点 类的留意点

类中约束私有拜访的成员变量/办法或类,通过名称前缀_进行限定,并且Dart不支持重载

安卓开发学Flutter——Dart语法的一些注意点(第二篇)

安卓开发学Flutter——Dart语法的一些注意点(第二篇)
在Dart的类这块知识中,最大的不同便是没有了interface这个关键字了,Dart这块采用抽象类abstract class声明,完成仍是用关键字implements,为处理二义性,这就要求派生类有必要覆写接口中的一切办法。
而继承关键字仍是extends,此外,Dart还加了新的办法——混入类,混入类需求通过mixin关键字进行声明(不能有构造办法),通过with关键字进行运用,特点是万金油,继承抽象类和接口的优势都有。
不过抽象类接口混入类都是不能直接实例化的。

总结

这是我过一遍Dart语法的收获,有些不全面,但暂时也够用了,总体而言,假如你了解Java或Kotlin,应该仍是很好学这门言语的,而更多留意的当地需求我在实战中感悟再更新。
不过,如有不对的当地,还希望各位指正,谢谢观看!