Dart基础使用手册

作者: 六花垂冰丸 | 来源:发表于2019-07-02 15:57 被阅读1次

程序入口

在每个app中必须有一个main()函数作为程序的入口点。

你可以在新建的flutter项目中找到它(main.dart)

void main() => runApp(MyApp())

控制台输出

print('this is a log')

变量

Dart是类型安全的 变量必须是明确声明的或者是系统能够解析的类型

String name = 'hello';
var name = 'hello'
//两种都可以

在Dart中,未初始化的变量的初始值为null

布尔

在Dart中,只有布尔值为"true"才被认为true,0不算

null检查

  • ?.运算符左边为null的情况会直接走左边的调用,类似三目运算符
  • ??运算符为在左侧表达式为null时为其设置默认值

函数

add(){
    
}

String getAString(String output){
    return output;
}

注释

// 单行

///
/// 文档注释

/* */ 多行

引用

//引用核心库
import 'dart:async';
import 'dart:math';

//引用外来库
import 'package:angular2/angular2.dart';

//引用文件
import 'path/filename'

声明类

class Spacecraft {
  String name;
  DateTime launchDate;
  int launchYear;

  // 包含成员变量的构造器
  Spacecraft(this.name, this.launchDate) {
    launchYear = launchDate?.year;
  }

  // 命名构造函数
  Spacecraft.unlaunched(String name) : this(name, null);

  // 方法
  void describe() {
    print('Spacecraft: $name');
    if (launchDate != null) {
      int years = new DateTime.now().difference(launchDate).inDays ~/ 365;
      print('Launched: $launchYear ($years years ago)');
    } else {
      print('Unlaunched');
    }
  }
}

使用类

var voyager = new Spacecraft('Voyager I', new DateTime(1977, 9, 5));
voyager.describe();

var voyager3 = new Spacecraft.unlaunched('Voyager III');
voyager3.describe();

继承

在Dart中也是使用extends来继承的,同时Dart是单继承

接口

Dart没有interface关键字。在 Dart 中所有的类都隐含的定义了一个接口。因此你可以使用 implement 来实现任意的类隐含定义的接口。

抽象类

abstract class Describable {
  void describe();

  void describeWithEmphasis() {
    print('=========');
    describe();
    print('=========');
  }
}

任何继承 Describable 的类都有一各 describeWithEmphasis() 函数,这个函数调用子类的 describe() 函数。

异步编程

Dart使用Future来表示
使用 asyncawait 可以避免回调接口嵌套的问题,让异步代码更加简洁。

Future<Null> printWithDelay(String message) async {
  await new Future.delayed(const Duration(seconds: 1));
  print(message);
}

错误异常

抛出异常

if (astronauts == 0) {
  throw new StateError('No astronauts.');
}

捕获异常

异常可以被捕捉,在异步中也可以

try {
  for (var object in flybyObjects) {
    var description = await new File('$object.txt').readAsString();
    print(description);
  }
} on IOException catch (e) {
  print('Could not describe object: $e');
} finally {
  flybyObjects.clear();
}

Getters 和 Setter

class Spacecraft {
  // ...
  DateTime launchDate;
  int get launchYear => launchDate?.year;
  // ...
}

相关文章

  • Dart基础使用手册

    程序入口 在每个app中必须有一个main()函数作为程序的入口点。 你可以在新建的flutter项目中找到它(m...

  • Dart 基础(四)

    前言笔者在之前已经写了3篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二)Dart 基础 (三)...

  • Dart 基础 (三)

    前言笔者在之前已经写了2篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二) 本文是Dart基础的...

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • 一.Dart语法-操作符、方法与异常

    Dart基础 运行Dart 代码可以使用 dart xxx.dart,dart命令需要配置环境变量,将 “${F...

  • Dart基础(一)

    级别: ★☆☆☆☆标签:「Flutter 」「Dart」「Dart基础类型」作者: WYW审校: QiShare...

  • Flutter学习笔记

    Dart基础语法 一、选择开发工具 首先需要安装Dart SDK(https://www.dart-china.o...

  • Dart语言基础,Dart 基础

    Dart 的main方法有两种声明方式 注释 变量的声明 、命名规则、数组类型 Dart是一个强大的脚本类语言,可...

  • Dart 基础

    Dart 基础汇总 点我直达[https://xxxixxxx.github.io/categories/Dart...

  • Flutter - 入门

    Dart基础 如果你有JS、Java、Kotlin、Swift等语言的基础,入门几乎没啥子难度 程序入口 dart...

网友评论

    本文标题:Dart基础使用手册

    本文链接:https://www.haomeiwen.com/subject/moxthctx.html