Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、

Dart作为web开发语言,经过Flutter团队的精挑细选,将Dart作为Flutter的开发语言。至于Dart的优势,不作介绍了。

Dart与Java相似,但却有不同。大的不同,主要有如下:

级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用。


1.级联 

级联操作用2个点(..)表示,可对同一对象执行一系列操作。类似于JavaScript的Promise的then处理。

级联操作主要是简化代码。

query('#btn1')//获取一个id为btn1的按钮对象
    ..text='确定'
    ..classes.add('Button1Style')
    ..onClick.listen((s) => window.alert('ok'));

等价于

var btn1=query('#btn1')//获取一个id为btn1的按钮对象
btn1.text='确定'
btn1.classes.add('Button1Style')
btn1.onClick.listen((s) => window.alert('ok'));

2.可选参数、命名参数、参数默认值

可选参数:将参数用[]括起来,表明是可选位置参数。

Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、_第1张图片

参数默认值,是若参数指定了默认值,当不传值的时候,函数会使用默认这个值。如果传了值就使用传入的值取代默认值。通常参数的默认值为null。

Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、_第2张图片

命名参数:用{}表示.调用的时候以 参数名:参数值 的形式传递

  String printUserInfo(String username,{int age,String sex='男'}){  //形参

 if(age!=null){
       return "姓名:$username---性别:$sex--年龄:$age";
   }
     return "姓名:$username---性别:$sex--年龄保密";

 }
print(printUserInfo('张三',age:20,sex:'未知'));

3.读取和写入对象

get()、set()方法是专门用于读取和写入对象的属性的方法,每一个类的实例,系统都隐式的包含get()、set()。

Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、_第3张图片


4.重载操作

Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、_第4张图片


5.Mixins

混入功能,相当于多继承。即可集成多个类。使用with来实现Mixins的功能。

Dart:级联操作、可选参数、命名参数、参数默认值、读取和写入对象、重载操作、Mixins、库的使用、_第5张图片


6.库的使用

6.1 引用库:

通过imort在一个库中引用另一个库的文件。

第三方的库文件使用package:xx格式

6.2 指定一个库的前缀:

当引入的库有相互冲突的名字,可以用其中一个或几个指定不一样的前缀。类似于命名空间。

import 'package:demo/lib.dart':
import 'package:demo/lib.dart' as lib2:

...

lib2.Test test = lib2.Test();

6.3 引用库的一部分:

如果只需要使用库的一部分内容,可以有选择的引用:

show:只引用一点

hide: 除此之外都引用

无任何关键字: 引用该dart文件


//导入demo
import 'package:test/lib.dart' show demo;

//除了demo导入其他所有内容
import 'package:test/lib.dart' hide demo;

//引用lib.dart文件
import 'package:test/lib.dart';

 

你可能感兴趣的:(Dart)