Dart基础使用手册
程序入口
在每个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来表示
使用async和await可以避免回调接口嵌套的问题,让异步代码更加简洁。
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基础使用手册的更多相关文章
- Dart基础学习02--变量及内置类型
Dart基础学习02--变量及内置类型 Dart中的变量 首先看一个变量的定义和赋值 var name = 'Bob'; 在Dart中变量名都是引用,这里的name就是一个指向值为Bob的字符串的引用 ...
- laravel基础操作手册
laravel基础操作手册 1.路由配置 测试配置路由: Route::get('/test', 'TestController@index'); 2.控制器书写 3.模型文件 4.增加扩展类文件 L ...
- Dart:2.通过一个简单程序来理解Dart基础语法
一 . 一个简单的 Dart 程序 // 这是程序执行的入口. main() { var number = 42; // 定义并初始化一个变量. printNumber(number); // 调用一 ...
- Dart 基础重点截取 Dart 2 20180417
官网教程 https://www.dartlang.org/guides/language/language-tour dart是一个单线程的语言,没有多线程 Final and const If y ...
- dart基础计数器
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends S ...
- dart基础语法
.关于 runApp() 上面的实例代码中使用了 runApp() 方法,runApp 方法接收的指定参数类型为 Widget,即: runApp(Widget).在 Flutter 的组件树(wid ...
- Dart基础学习03--方法的使用
1.本文主要讲一下Dart中的方法是怎么定义的,下面先看一个简单的例子: void printNumber(num number) { print('The number is $number.'); ...
- Dart基础学习01--走近Dart
什么是Dart 在Dart的官网上是这样介绍Dart的: Dart is an open-source, scalable programming language, with robust libr ...
- Dart基础
dartpad在线调试 :https://dartpad.dartlang.org 运行需要用墙 vscode执行dart 安装 安装dart插件 下载安装dart 配置环境变量 vscode新建 ...
随机推荐
- vue2.0 之 nextTick
Vue.nextTick 将回调延迟到下次 DOM 更新循环之后执行.在修改数据之后立即使用它,然后等待 DOM 更新. 它跟实例方法vm.$nextTick() 一样,不同的是 this 自动绑定到 ...
- jmeter性能工具 之 传参 (三)
jmeter 主要有三种方式:键值对传参,json格式传参,外部传参 1.键值对传参 可以参考上篇登陆,使用的传参方式是键值对传参 2.json 格式传参 用json 格式传参不要忘了加http 头 ...
- 共享OrCAD9.2pSpice9.2+multisim下载地址
http://pan.baidu.com/s/1dDcfiH7ewb9绿色版,解压后即可用!http://pan.baidu.com/s/1kTG43WFMultisim v11绿色版.7zhttp: ...
- Flask中的中间件
flask也有和Django类似的中间件,不同的是使用三个装饰器来实现的. .berore_request在请求进入视图之前 @app.before_request def be1 bef be2 b ...
- django 使用ORM插入数据,提示Cannot assign "1": "B" must be a "Projectconfig" instance.
这是因为使用了外键导致的, 如果使用了外键,先实例化外键查询,然后再插入的表里面放入实例化后的外键连接
- C#基础提升系列——C#任务和并行编程
C#任务和并行编程 我们在处理有些需要等待的操作时,例如,文件读取.数据库或网络访问等,这些都需要一定的时间,我们可以使用多线程,不需要让用户一直等待这些任务的完成,就可以同时执行其他的一些操作.即使 ...
- 阿里云吴天议:云原生SDWAN 应用 构建智能化云原生SDWAN生态
2019年11月16日 SDWAN 大会在北京正式召开.阿里云网络资深产品专家吴天议先生继阿里云网络研究员祝顺民先生发表了对云原生SDWAN的进化与展望之后(原文请见https://bit.ly/2K ...
- KMP字符串匹配模板
题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next. (如果你不知道这是什么意思也不要问,去百度 ...
- Oracle DB 查看预警日志
“Database(数据库)”主页>“Related Links相关链接)”区域> “Alert Log Content (预警日志内容)” 查看预警日志每个数据库都有一个alert_&l ...
- Solr JAVA客户端SolrJ的使用
一.Solrj简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.SolrJ针对 Solr提供了Rest 的HTTP接口进行了封装, SolrJ底 ...