Dart语法总结篇:www.jianshu.com/p/93996e075…
Dart语法与Java语法区别篇
1、Dart的代码文件以.dart后缀保存
2、dart文件中可以定义多个class,也可以只定义方法,引入关键字import xxxx.dart
3、Dart中修饰符只有公共、私有,默认为public,私有属性需要把代码单独声明在一个单独的dart文件中,使用私有修饰符‘_'来修饰
4、主函数void main(){ }
5、创建对象 new关键字可选
6、声明变量可以使用var自动识别变量类型声明
7、未初始化的变量值默认null
8、获取变量值使用'a并输出")
9、字符串可以使用单引号或双引号,双引号、三个单引号声明多行字符串
10、常量修饰符:const、final
const值不变 一开始就得赋值,final 可以开始不赋值 只能赋一次 ;
final有const的编译时常量的特性,是运行时常量,且final是惰性初始化,在运行时第一次使用前才初始化。
11、对象操作符
? 条件运算符 class A{ a(print("a");) A?.a(); }如果A为空则不执行后面的代码
as 类型转换 a as Object
is 类型判断 a is Object
.. 连缀操作(省略多个对象引用) a..属性1
··属性2
..属性3
12、方法函数
默认参数 参数可以有默认值 如果调用时没有传参直接使用默认值,否则覆盖默认值
可选参数函数 [] 里的参数
命名参数函数 {} 里的参数 调用时必须连参数名称一起写 a:1,b:2 (不存在重载的概念,有重 写override)
支持方法参数
匿名方法 var a(参数){prin($参数)} a(参数);(把方法赋值给变量,通关变量调用,方法也具有类型)
自执行方法 ((参数可选){})(参数可选);
闭包 方法内return一个匿名方法
13、构造函数
构造函数传参支持 A(this.a,this.b)简写;
可命名构造函数 A.a1(可选参数){} new A.a1();
get set属性用法
//返回值类型/get/外部可访问属性/方法体 int get speed => _speed
//set/外部可访问属性(值)/方法体 set speed(int value) => _speed = value;
14、箭头函数=>,函数或方法的简写
=> 函数体内只可以写一行代码
两种写法 一种不带{} void main() => runApp(MyApp());
带{} void main() => { runApp(MyApp()) };
15、接口
Dart没有具体的接口声明关键字,类都可以作为接口使用implements来实现
16、Mixins
Mixins(混入功能)相当于多继承,可以继承多个类,使用with关键字来实现Mixins的功能
with后面的类覆盖前面的类的属性;
class A{ void a(){ print("A.a()..."); } } class B{ void a(){ print("B.a()..."); } void b(){ print("B.b()..."); } } // 类D 继承A和B class D extends A with B{ } void main() { var d = new D(); d.a(); }