Flutter 技术入门与实战 (28):开启 Flutter 之旅 3.5

阅读数:3 2019 年 12 月 15 日 18:48

Flutter技术入门与实战(28):开启Flutter之旅 3.5

(流程控制语句)

内容简介
第 1 章介绍 Flutter 的基本概念,并搭建第 yi 个 Flutter 程序,来感受一下 Flutter 之美。
第 2 章介绍几个重要知识点,如入口程序、Material Design、Flutter 主题、无状态组件和有状态组件、使用包资源、Http 请求。
第 3 章简单介绍 Dart 语言。Dart 语言是 Flutter SDK 指定的语言,我们很有必要补充一下它的基础知识,包括语法特性、基本语句、面向对象等。
第 4 章介绍常用组件。Flutter 里有一个非常重要的核心理念:一切皆为组件,本章主要讲解开发中用得 * 频繁的组件,如容器组件、图片组件、文本组件、图标组件和表单组件等。
第 5 章介绍 Material Design 风格的组件,Material Design 风格是一种非常有质感的设计风格,并提供一些默认的交互动画。本章将分类介绍这些组件。
第 6 章介绍 Cupertino 风格的组件,这是一类 iOS 风格的组件,如 CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView 等。
第 7 章介绍页面布局的基础知识和技巧,如基础布局处理、宽高尺寸处理、列表及表格布局等,* 后通过一个综合布局示例来演示如何编写复杂的页面。
第 8 章介绍如何处理手势,如轻击、拖动和缩放等。Flutter 中提供 GestureDetector 进行手势检测,并为手势检测提供了相应的监听。
第 9 章介绍如何加载、处理、展示资源和图片,如添加资源和图片、自定义字体等。
第 10 章介绍路由及导航是如何处理的,包括页面的渲染以及数据传递。
第 11 章介绍组件装饰和视觉效果的处理,如 Opacity(透明度处理)、DecoratedBox(装饰盒子)、RotatedBox(旋转盒子)、Clip(剪裁处理)和 CustomPainter(自定义画板)。
第 12 章介绍动画效果的制作,包含两个动画组件的使用:用 AnimatedOpacity 实现渐变效果、用 Hero 实现页面切换动画。
第 13 章介绍 Flutter 插件开发的入门知识。Flutter 插件可以和原生程序打交道,比如调用蓝牙、启用 WIFI、打开手电筒,等等。
第 14 章介绍开发工具及使用技巧,介绍几款常用的 IDE 工具,从代码的编写、辅助功能、程序调试、性能分析等多方面讲解工具及使用技巧。
第 15 章介绍测试与发布应用,包括:测试应用、发布 Android 版和 iOS 版 App。
第 16 章通过一个综合案例介绍如何使用 Flutter 实现即时通讯 App 的界面。

Dart 语言的流程控制语句如下:

  • if 和 else
  • for(循环)
  • while 和 do-while(循环)
  • break 和 continue
  • switch 和 case
  • assert(断言)
  • try-catch 和 throw

1. if 和 else

Dart 支持 if 及 else 的多种组合,示例代码如下:

复制代码
String today = 'Monday';
if (today == 'Monday') {
print('今天是星期一');
} else if (today == 'Tuesday') {
print('今天是星期二');
} else {
print('今天是个好日子');
}

上面的代码输出“今天是星期一”,条件语句走到第一条判断就停止了。

2. for

下面举例说明 for 循环,首先定义了一个字符串“Hello Dart”,然后使用 for 循环向 message 变量里写入 5 个同样的字符“!”,如下所示:

复制代码
var message = new StringBuffer("Hello Dart");
for (var i = 0; i < 5; i++) {
message.write('!');
}
print(message);

上面的代码会输出“Hello Dart!!!”,注意值是字符串向尾部添加的。除了常规的 for 循环外,针对可以序列化的操作数,可以使用 forEach() 方法。当不关心操作数的当前下标时,forEach() 方法是很简便的。如下代码所示:

复制代码
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
print(v);
}

上面的代码会按序列输出 0 1 2 3 4 5 6。

3. while 和 do-while

下面举例说明 while 循环,其中定义了一个变量 temp,temp 在循环体内自动加 1,当条件(temp<5)不满足时会退出循环,如下所示:

复制代码
var _temp = 0;
while(temp < 5){
print(" 这是一个 while 循环: " + (_temp).toString());
_temp ++;
}

接下来我们看一下例子用 do-while 循环,代码如下所示:

复制代码
var _temp = 0;
do{
print(" 这是一个循环: " + (_temp).toString());
_temp ++;
}
while(_temp < 5);

上面的两个例子都对应如下输出:

复制代码
flutter: 这是一个循环: 0
flutter: 这是一个循环: 1
flutter: 这是一个循环: 2
flutter: 这是一个循环: 3
flutter: 这是一个循环: 4

4. break 和 continue

break 用来跳出循环,改造前面的循环例子,代码如下:

复制代码
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
if(v == 2 ){
break;
}
print(v);
}

上面的代码当 v 等于 2 时循环结束。所以程序输出 0,1。现在我们把 break 改为 continue,代码如下所示:

复制代码
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
if(v == 2 ){
//break;
continue;
}
print(v);
}

改为 continue 后,当 v 等于 2 时循环只是跳出本次循环,代码还会继续向下执行,所以输出的结果是 0,1,3,4,5,6。

5. switch 和 case

Dart 中 switch / case 语句使用 == 操作来比较整数、字符串或其他编译过程中的常量,从而实现分支的作用。switch / case 语句的前后操作数必须是相同类型的对象实例。每一个非空的 case 子句最后都必须跟上 break 语句。示例如下所示:

复制代码
String today = 'Monday';
switch (today) {
case 'Monday':
print('星期一');
break;
case 'Tuesday':
print('星期二');
break;
}

上面这段代码也可以用 if /else 语句,输出相同的结果,代码输出为“星期一”。

6. assert

Dart 语言通过使用 assert 语句来中断正常的执行流程,当 assert 判断的条件为 false 时发生中断。assert 判断的条件是任何可以转化为 boolean 类型的对象,即使是函数也可以。如果 assert 的判断为 true,则继续执行下面的语句;反之则会抛出一个断言错误异常 AssertionError。代码如下所示:

复制代码
// 确定变量的值不为 null
assert(text != null);

Flutter技术入门与实战(28):开启Flutter之旅 3.5

购书地址 https://item.jd.com/12526484.html?dist=jd

评论

发布