4.2 库基础 – 《简单易懂的Dart》

4.2.1 导入库 在Dart中,导入库使用import关键字,它的唯一参数是库的URI路径. Dart SDK中包括了这些库: dart:async dart:collection dart:core dart:crypto dart:html [client] dart:indexed_db [client] dart:io »


4.1 异常 – 《简单易懂的Dart》

4.1.1 抛出异常 在Dart中抛出异常使用关键字throw. 异常是一个对象,所有异常都继承自Exception,另外,throw不仅可以抛出异常对象,还可以抛出字符串等其他对象. void main() { throw new Exception('Error'); } 上面这段代码抛出了一个Exception对象,其内容为Error. 抛出字符串等其他对象: void main() { throw 'Error'; } 运行程序,抛出字符串”Error” »


3.8 工厂构造函数 – 《简单易懂的Dart》

3.8.1 工厂构造函数的定义 工厂构造函数是一种构造函数,与普通构造函数不同,工厂函数不会自动生成实例,而是通过代码来决定返回的实例对象. 工厂构造函数的关键字为factory,下面我们用工厂构造函数写一个只能创造一个实例的类. class A{ String name; static A cache; factory A([String name='A']){ if(A.cache===null) »


3.7 泛型 – 《简单易懂的Dart》

3.7.1 使用泛型 Dart的变量类型是可省的,所以在类型约束方面很松散. 在一些场合我们仍然需要对类型进行约束,这个时候就需要用到泛型了. Dart的List类就支持泛型,默认情况下,List类的实例中可以放入所有可能的类型,就像这样: void main(){ var list=new List(); list.add(123); list.add(true); list.add( »


3.6 命名构造函数与列表初始化 – 《简单易懂的Dart》

3.6.1 命名构造函数 传统的构造函数是一个与类名同名的方法,但是Dart还支持命名构造函数. 命名构造函数是一个类同名方法的子方法,它同样可以完成对类实例的构造. 下面我们定义一个简单的命名构造函数,它比类同名方法要省略一个参数. class Box{ int width,height; Box(int this.width,int this.height); Box.equalRatios(int length) »


3.5 静态成员 – 《简单易懂的Dart》

3.5.1 静态变量 Dart中的静态变量使用static修饰,静态变量在类未实例化时才能使用. class A{ static String helloworld='helloworld'; void say(){ print(helloworld); } } void main(){ print(A.helloworld); A a=new A(); a. »


3.4 隐式接口与GetSet方法 – 《简单易懂的Dart》

3.4.1 隐式接口 接口是更纯粹的抽象,使用接口时必须实现其定义的所有成员. Dart提供了隐式接口的功能,在定义类时使用implements关键字,可以像extends一样从父类获取到成员,与extends不同的是,这不是继承,而是接口成员约束. 复制以下代码并运行: class Player{ int health_point; Player(this.health_point); void loseHealthPoint(int point) »


3.3 类的抽象与运算符重载 – 《简单易懂的Dart》

3.3.1 抽象 Dart的抽象关键字为abstract,只能使用在类上,不能用来修饰其成员. 抽象类不能实例化,只能在被其他类继承后才能间接的实现实例化. 用例子说话会比较方便,接下来我们规定一个名为Player(玩家)的抽象类: abstract class Player{ int health_point=100; void loseHealthPoint(int point); void restoreHealthPoint( »


3.2 类的继承与重写 – 《简单易懂的Dart》

3.2.1 继承 Dart与JavaScript之间最大的不同,恐怕就是面向对象的实现形式,在JavaScript中实现继承相当复杂并且容易出现错误. 在Dart中,进行对象继承只需要关键字extends. 我们把3.1中实现的Person类进行继承,创造一个名为Boy的子类: class Person{ String firstName,lastName; int age; Person(this.firstName,this.lastName,this.age) »


2.b 数值 – 《简单易懂的Dart》

本篇是2.x中尚未提到的有关Dart数值的相关内容,为了《简单易懂的Dart》的完整性,特在此补全. 由于内容本身并不多,所以本篇的篇幅会比较短,涉及的知识也不会很深. 数值表示 我们在编程中经常用到的数值有3种类型:十进制数,十六进制数,二进制数. 在Dart中,十进制数是可以直接书写的,例如12345,就是一个十进制数. 表示十六进制则需要在十六进制数前加上0x,这和其他语言差不多. 关于二进制,很遗憾现在Dart还没有办法直接表示二进制数. 科学计数法 Dart中可以直接使用科学计数法表示一个数值. 比如100000我们可以写成1e5. 在使用科学计数法的时候, »