本文正在参加「金石计划 . 瓜分6万现金大奖」
前言
通过大概两个星期的空闲时刻学习,我简单的过了一遍Flutter的言语Dart,其实这门言语与Java和Kotlin有很多相似的当地,需求重新学习的当地很少,但有些不同的当地咱们就需求独自来记忆下,所以本篇将一些需求留意的不同点在Dart语法体系中拎出来,防止后边学习的时分呈现忘记能够快速回顾。
正篇
首要写Dart需求咱们先搭好Flutter环境(详见上篇安卓开发学Flutter——安装与构建环境的一些留意点(第一篇) – ()),然后新建一个Dart文件即可开始学习编写:
第一点 关键字留意点
首要,Dart言语上规则默许情况下,声明的量都是可变量
,不过它也有Kotlin中的var,能够用于表明变量为可变量,并且不必指定变量类型,但这种办法在Dart中不引荐,最好仍是明确变量类型,此外每句代码结尾也要带上“;”,这和Java又相似,Kotlin是句末不需求带此符号的。
此外还有数据类型里多了一个num:
**num**既能够表明整数,也能够表明小数,根据你赋予的数字类型自己判断。
第二点 函数留意点
函数方面,首要不需求和Kotlin一样要**fun**关键字来标识为函数办法,和Java差不多的界说办法,但假如返回的为一行代码能够用“=>”去省写
除此以外,Dart又多了很多其他参数运用办法,如下:
1.命名参数
用“{}”和关键字required来命名参数
//命名参数
void demo4({
required int x,
required int y
}) {
x = x * y;
}
//调用采用命名参数的函数不必按参数次序
demo4(y: 5, x: 3);
这种办法的好处便是调用的时分不必按参数次序写入参数。
2.默许参数
与命名参数相似,不过不必运用required关键字且要在声明参数时分就给赋值了
//默许参数
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封装好供给的日期办法也是运用方位参数: 这其间year参数为有必要传参,后边”[]”中参数要按次序填但是选填,原因是咱们声明参数时已经赋予了默许值。
此外,能够自界说函数办法,还能将函数办法视为目标,并且能够作为参数放入函数:
typedef Demo = int Function(int);
Demo demo7 = demo;
//函数能够当成目标,并且能够入参办法
int demo8(int a, {Demo? demo}) {
if (demo == null) return a;
return demo(a);
}
这算是和我平时安卓原生开发最大的一点不同了。
第三点 类的留意点
类中约束私有拜访的成员变量/办法或类
,通过名称前缀_
进行限定,并且Dart不支持重载
在Dart的类这块知识中,最大的不同便是没有了interface这个关键字了,Dart这块采用抽象类abstract class
声明,完成仍是用关键字implements,为处理二义性,这就要求派生类有必要覆写接口
中的一切
办法。
而继承关键字仍是extends,此外,Dart还加了新的办法——混入类,混入类需求通过mixin
关键字进行声明(不能有构造办法),通过with
关键字进行运用,特点是万金油,继承抽象类和接口的优势都有。
不过抽象类
、接口
、混入类
都是不能直接实例化的。
总结
这是我过一遍Dart语法的收获,有些不全面,但暂时也够用了,总体而言,假如你了解Java或Kotlin,应该仍是很好学这门言语的,而更多留意的当地需求我在实战中感悟再更新。
不过,如有不对的当地,还希望各位指正,谢谢观看!