Dart语言学习

35 阅读2分钟

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、获取变量值使用'来获取如:print("获取一个变量a'来获取 如: print("获取一个变量aa并输出")

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(); }