关于Dart的一些知识点

简介: 关于Dart的一些知识点

$符号

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是类型转换操作符,也就是常说的强制转换。


目录
打赏
0
0
0
0
13
分享
相关文章
Dart笔记:Dart 语言中的存取器及其用法解析
Dart笔记:Dart 语言中的存取器及其用法解析
112 0
带你读《深入浅出Dart》十一、Dart模块化详解
带你读《深入浅出Dart》十一、Dart模块化详解
《深入浅出Dart》Dart的Stream
Dart的Stream Stream 是 Dart 中处理连续的异步事件的工具。例如,你可以使用 Stream 来读取文件的内容,或者监听用户的鼠标点击。 一个简单的 Stream 示例:
233 0
《深入浅出Dart》Flutter简介
Flutter简介 Flutter是由Google开发和维护的开源框架,自2017年以来,已经迅速获得了开发者社区的广泛认可。其主要目的是开发出高性能、高保真的移动应用程序,用于iOS和Android两个主要平台。 Google创建Flutter的初衷是解决跨平台开发中的一些普遍问题,包括性能瓶颈,不同平台的UI不一致等。Google希望Flutter能够创建美观、流畅且用户体验接近原生应用的应用程序。目前,Flutter已经逐步扩展到其他平台,如Web、桌面应用和嵌入式系统。
115 0
带你读《深入浅出Dart》十九、Dart中泛型
带你读《深入浅出Dart》十九、Dart中泛型
121 0
Flutter :几个常用的知识点
本文介绍几个在 Flutter 中常用的知识点。
443 0
Flutter :几个常用的知识点
《深入浅出Dart》Dart测试
单元测试和集成测试 Dart的生态系统提供了一个完善的测试框架来进行代码的单元测试和集成测试。以下是一些基本的测试知识。 Dart单元测试 单元测试是在软件开发中进行的最小单元的测试。在Dart中,我们可以使用内置的test包来进行单元测试。 安装测试包 首先,我们需要在pubspec.yaml中添加test的依赖:
224 0
《深入浅出Dart》Dart中的泛型
Dart中泛型 泛型,一种强大而灵活的编程工具,可以让开发者创建可以适应任何类型的代码,同时又保持类型安全。这是在许多编程语言中都存在的一种重要的特性,Dart也不例外。在这篇文章中,我们将深入探讨Dart中的泛型。
168 0
《深入浅出Dart》函数
函数 Dart语言作为一门面向对象的语言,函数在其中占据了非常重要的位置。本文将详细解析如何定义和调用函数,以及箭头语法,高阶函数和闭包等内容。 1. 函数的定义和调用 在Dart中,函数可以定义为一段实现特定功能的代码块,可以带有参数和返回值。 定义函数:
127 0
《深入浅出Dart》类的继承
继承 继承的概念和用途 在面向对象编程中,继承是一种能够创建新类的方式,我们可以在新类中添加新的方法和字段,也可以对父类的方法进行覆写或扩展。 子类和父类 在 Dart 中,我们可以使用 extends 关键字来创建一个子类:
154 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等