一、变量和常量

变量

var a = 1;
var str = 'abc';

常量

const PI = 3.14;

不可变对象

final PI = 3.14;
final TIME = new DateTime.now()

二、流程控制语句

if (year >= 2001) {
print('21st century');
} else if (year >= 1901) {
print('20th century');
} for (final object in flybyObjects) {
print(object);
} for (int month = 1; month <= 12; month++) {
print(month);
} while (year < 2016) {
year += 1;
}

三、函数

标准

int fibonacci(int n) {
if (n == 0 || n == 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
} var result = fibonacci(20);

简写 =>

flybyObjects.where((name) => name.contains('turn')).forEach(print);

四、注释

/// 这是一个文档注释。
/// 文档注释用于为库、类以及类的成员添加注释。
/// 像 IDE 和 dartdoc 这样的工具可以专门处理文档注释。 /* 也可以像这样使用单斜杠和星号的注释方式 */

五、导入( Import )

标准

// Importing core libraries
import 'dart:math'; // Importing libraries from external packages
import 'package:test/test.dart'; // Importing files
import 'path/to/my_other_file.dart';

指定库前缀(解决代码库冲突)

import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2; // Uses Element from lib1.
Element element1 = Element(); // Uses Element from lib2.
lib2.Element element2 = lib2.Element();

导入库的一部分

// Import only foo.
import 'package:lib1/lib1.dart' show foo; // Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

六、类( Class )

普通

class Spacecraft {
String name;
DateTime? launchDate; // Read-only non-final property
int? get launchYear => launchDate?.year; // Constructor, with syntactic sugar for assignment to members.
Spacecraft(this.name, this.launchDate) {
// Initialization code goes here.
} // Method.
void describe() {
// code doing
}
}

继承

// 继承
class Orbiter extends Spacecraft {
double altitude; Orbiter(super.name, DateTime super.launchDate, this.altitude);
}

抽象类

abstract class Describable {
void describe(); void describeWithEmphasis() {
print('=========');
describe();
print('=========');
}
}

Mixins

Mixin 是一种复用多个类之间的代码,减少耦合。下面的是声明一个 Mixin 的做法:

mixin Piloted {
int astronauts = 1; void describeCrew() {
print('Number of astronauts: $astronauts');
}
} class PilotedCraft extends Spacecraft with Piloted {
// ···
}

可以将多个mixins放入同一个类中,而且dart对这个数量没有作任何限制。

七、接口

Dart 没有 interface 关键字。相反,所有的类都隐式定义了一个接口。因此,任意类都可以作为接口被实现。

class MockSpaceship implements Spacecraft {
// ···
}

八、枚举(Enums)

enum PlanetType { terrestrial, gas, ice }

九、异常(try/catch)

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

异步(async/await )

Future<void> createDescriptions(Iterable<String> objects) async {
for (final object in objects) {
try {
var file = File('$object.txt');
if (await file.exists()) {
var modified = await file.lastModified();
print(
'File for $object already exists. It was modified on $modified.');
continue;
}
await file.create();
await file.writeAsString('Start describing $object in this file.');
} on IOException catch (e) {
print('Cannot create description for $object: $e');
}
}
}

Flutter(四):Flutter 语言 Dart基础使用的更多相关文章

  1. [Flutter] 一些面试可能会问基础知识

    1. Flutter 是什么? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被 ...

  2. 【Flutter】Flutter 一些常用库

    Flutter社区和资源传送门 新: 慕课网<Flutter入门与案例实战>   |   中文网<Flutter实战>电子书 字体图标生成 http://fluttericon ...

  3. 【老孟Flutter】Flutter 2的新功能

    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了, Flutter Web和Null安全性趋于稳定,Flutter桌面安全性逐渐转向Beta版! 原文链接:https://medium.c ...

  4. Flutter介绍 - Flutter,H5,React Native之间的对比

    Flutter介绍 Flutter是Google推出的开源移动应用开发框架.开发者可以通过开发一套代码同时运行在iOS和Android平台. 它使用Dart语言进行开发,并且最终编译成各个平台的Nat ...

  5. Dart:2.通过一个简单程序来理解Dart基础语法

    一 . 一个简单的 Dart 程序 // 这是程序执行的入口. main() { var number = 42; // 定义并初始化一个变量. printNumber(number); // 调用一 ...

  6. LINUX下C语言编程基础

    实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...

  7. 2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量

    JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(4)|借用Borrowing]

    [易学易懂系列|rustlang语言|零基础|快速入门|(4)] Borrowing 继续讲讲另一个重要的概念:借用(borrowing), 什么是借用? 我们先来看前一文章([易学易懂系列|rust ...

  9. 【手把手学习flutter】Flutter打Android包的基本配置和包体积优化策略

    [手把手学习flutter]Flutter打Android包的基本配置和包体积优化策略 关注「松宝写代码」,回复"加群" 加入我们一起学习,天天向上 前言 因为最近参加2020FE ...

  10. Flutter framework & Flutter basics

    Flutter framework & Flutter basics https://flutter.dev/docs/get-started/learn-more UI widgets ht ...

随机推荐

  1. 手写前端 serialize

    前言 在jquery中,写下我们很方便序列化我们的表单,比如说: window.onload=function(){ var form=$('#bitgood'); // document.getEl ...

  2. eclipse 卡顿的优化办法

    1. 关闭校验 2. 关闭插件自动升级 3.关闭界面设置的一些选项

  3. pageSpy - 远程调试利器

    视频版: https://www.bilibili.com/video/BV1Zi4y167TZ 前言 在工作中, 经常需要面对的问题就是处理客户提出的bug. 但是这个事儿最耗费精力甚至决定能不能修 ...

  4. uni-app上传图片和文件

    如图所示: 上传图片,使用的是uni.chooseImage这个官方api,count 数量根据自己的需求来,我们是最多只能上传9张 uploadImgEvent(){ uni.chooseImage ...

  5. 【笔记】go语言--字符与字符串处理

    [笔记]go语言--字符与字符串处理 rune相当于go的char 使用range遍历pos,rune对(遍历出来是不连续的) 使用utf8.RuneCountInString获得字符数量 使用len ...

  6. 力扣640(java)-求解方程(中等)

    题目: 求解一个给定的方程,将x以字符串 "x=#value" 的形式返回.该方程仅包含 '+' , '-' 操作,变量 x 和其对应系数. 如果方程没有解,请返回 "N ...

  7. 2021年阿里云年中钜惠攻略,注册即可抽 iPhone 12 Pro 等好礼

    简介: 七月流火,燃情盛夏!值此季节,阿里云又推出了年中钜惠,精选百款产品,助力创业新势力.从7月26日开始,每天上午10点.下午4点将会放出爆款产品,进行限量秒杀,大家不要错过.注册登陆还可抽取 i ...

  8. [Docker] 使 Volume 独立于容器运行时的方式 - 让容器引擎去处理

    在单纯使用 run 命令运行一个容器时,通常会使用 -v 挂载的方式来实现宿主机数据卷映射到容器内. 使用命令: $ docker run --name mysql-con -v /my/custom ...

  9. [Contract] Solidity 合约使用 truffle 部署到测试网和主网

    使用 truffle 发布到非本地的以太坊主网或者测试网时,需要提供钱包的助记词或私钥. 首先安装 truffle 组件:npm install @truffle/hdwallet-provider ...

  10. [FAQ] web3js, Error: Please pass numbers as strings or BN objects to avoid precision errors.

    我们在调用合约方法时,都可以传一些参数的,比如转账金额 value. value 的单位是 wei,这是一个很小的单位,所以一般数值很大. 注意,把 ether 转 wei 需要先把 ether 的值 ...