关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

关于Dart的一些知识点

发布时间:2023-06-26 17:00:02

$符号

Dart 中可以在字符串通过$variableName或 ${expression} 语法插入变量,类似shell脚本

例如

var s = "hello"; print('${s}, world!'); //可以简化成: print('$s, world!'); //调用方法 print('${s.toUpperCase()}, world!');

   

==可以直接用来比较字符串

Dart 可以直接通过==来比较字符串:

var s1 = "hello"; var s2 = "HELLO"; assert(s1.toUpperCase() == s2);

   

注意:

在Dart的条件语句if和assert表达式里面,它们的值必须是bool类型,这点和 JavaScript 不同。


implements和extends以及mixin的区别

继承 ---- extends

典型的面向对象的继承,用于扩展父类;

class B extends A { } , 不强制覆写每一个父类中的方法(getter,setter 必须覆写);

在 Dart 只能继承一个类


接口 ---- interface

当你不想提供方法的实现而只想提供它们的 API 时,使用接口;

class C implements B { },你必须覆写B中所有的方法;

implements 可以扩展到多个类


混入 ---- mixin

共享相同逻辑的代码段;

class B with A { }, 在B中你可以使用A的所有方法,可以通过 on 关键字限制 mixin 的使用范围;

with 可以扩展到多个 mixin

… 级联操作

作用

可以让你在同一个对象上连续调用多个对象的变量或方法,如下面的例子:

class Person {  var name;  var age;  var gender="man";  Person(this.name, this.age);  Person.genderNew(this.name, this.age,this.gender);  printInfo() {  print("${this.name},${this.age},${this.gender}");  } }  main() {  var p = new Person.genderNew('A', 20,"woman");  p.printInfo();  //下面为级联操作  p  ..name = "B"  ..age = 30  ..gender = "man"  ..printInfo()  ..name = "C"  ..printInfo(); }

   

运行结果如下:

A,20,woman B,30,man C,30,man

   

$符号

Dart 中可以在字符串通过$variableName或 ${expression} 语法插入变量,类似shell脚本

例如

var s = "hello"; print('${s}, world!'); //可以简化成: print('$s, world!'); //调用方法 print('${s.toUpperCase()}, world!');

   

==可以直接用来比较字符串

Dart 可以直接通过==来比较字符串:

var s1 = "hello"; var s2 = "HELLO"; assert(s1.toUpperCase() == s2);

   

注意:

在Dart的条件语句if和assert表达式里面,它们的值必须是bool类型,这点和 JavaScript 不同。

implements和extends以及mixin的区别

继承 ---- extends

典型的面向对象的继承,用于扩展父类;

class B extends A { } , 不强制覆写每一个父类中的方法(getter,setter 必须覆写);

在 Dart 只能继承一个类

接口 ---- interface

当你不想提供方法的实现而只想提供它们的 API 时,使用接口;

class C implements B { },你必须覆写B中所有的方法;

implements 可以扩展到多个类

混入 ---- mixin

共享相同逻辑的代码段;

class B with A { }, 在B中你可以使用A的所有方法,可以通过 on 关键字限制 mixin 的使用范围;

with 可以扩展到多个 mixin

… 级联操作

作用

可以让你在同一个对象上连续调用多个对象的变量或方法,如下面的例子:

class Person {  var name;  var age;  var gender="man";  Person(this.name, this.age);  Person.genderNew(this.name, this.age,this.gender);  printInfo() {  print("${this.name},${this.age},${this.gender}");  } }  main() {  var p = new Person.genderNew('A', 20,"woman");  p.printInfo();  //下面为级联操作  p  ..name = "B"  ..age = 30  ..gender = "man"  ..printInfo()  ..name = "C"  ..printInfo(); }

   

运行结果如下:

A,20,woman B,30,man C,30,man

   

is as

其中is是类型判断操作符,而as是类型转换操作符,也就是常说的强制转换。



/template/Home/leiyu/PC/Static