《Flutter》-- 3.Dart语言

Posted 爱学习的程序媛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Flutter》-- 3.Dart语言相关的知识,希望对你有一定的参考价值。


参阅书籍:

《Flutter跨平台开发入门与实践》-- 向治洪(著)


参阅网站:

https://www.dartcn.com/guides/language/language-tour


3. Dart语言


Dart是谷歌公司于2011年10月发布的一门全新的编程语言,已被欧洲计算机制造商协会(European Computer Manufacture Association,ECMA)认定为标准,初期目标是将其用于Web应用、服务器、移动应用和物联网等领域的开发。

 

Dart在设计之初参考了Java等面向对象的编程语言,因此Dart既有面向对象编程的特性,也有面向函数编程的特性。除了融合Java和javascript所长之外,Dart还提供了一些其他具有表现力的语法,如可选命名参数、级联运算符和条件成员访问运算符等。


使用Dart之前,需要先安装Dart SDK。Dart SDK包含了编写和运行Dart代码所需的一切工具,如虚拟机(Virtual Machine,VM)、库、分析器、包管理工具、文档生成器和代码调试等。


搭建开发环境时安装的Flutter SDK里已经包含了Dart SDK。


《Flutter》-- 3.Dart语言


3.1 编写 Hello World


和大多数编程语言一样,Dart也把main()作为程序的入口。


首先,新建一个名为hello.dart的文件,添加如下代码。


《Flutter》-- 3.Dart语言


然后在终端执行dart hello.dart命令,在终端可以看到输出了“Hello World!”。


《Flutter》-- 3.Dart语言


3.2 变量和常量


变量仅存储对象引用。


3.2.1 声明变量

//用var声明变量,name变量的类型会被推断为Stringvar name = 'huahua';
//用dynamic声明变量,不限定name变量的类型dynamic name = 'huahua';
//显示声明变量,限定name变量的类型为StringString name = 'huahua';


注:显示声明的变量必须初始化后才能使用。


《Flutter》-- 3.Dart语言


3.2.2 默认值


在Dart中,一切皆为对象,未初始化的变量默认值是null。


《Flutter》-- 3.Dart语言


3.2.3 声明常量


在Dart中,声明使用过程中不会被修改的变量(即常量)可以使用final或const关键字。

 

final变量的值只能被设置一次,const变量的值在编译时就已经固定。

 

实例变量可以是final变量,但不能是const变量。

 

const还可以用来创建常量值,以及声明创建常量值的构造函数。


3.3 内置数据类型


3.3.1 Number


Number有两种类型:int(整型) 和 double(浮点型)。


从 Dart 2.1 开始,必要的时候 int 字面量会自动转换成 double 类型。


字符串和数字相互转换的方法:

// String -> intvar one = int.parse('1');
// String -> doublevar onePointOne = double.parse('1.1');
// int -> StringString oneAsString = 1.toString();
// double -> StringString piAsString = 3.14159.toStringAsFixed(2);


3.3.2 String


String是一组UTF-16的单元序列,通过单引号或双引号进行声明。


字符串可以通过 ${expression} 的方式内嵌表达式。如果表达式是一个标识符,则 {} 可以省略。

var s = 'string interpolation';print('Dart has $s, which is very handy.');//Dart has string interpolation, which is very handy.print('That deserves all caps. ' + '${s.toUpperCase()} is very handy!');//That deserves all caps. STRING INTERPOLATION is very handy!


使用连续三个单引号或者三个双引号实现多行字符串对象的创建。


《Flutter》-- 3.Dart语言


使用 r 前缀,可以创建原始raw字符串。


《Flutter》-- 3.Dart语言


3.3.3 Boolean


Dart使用 bool 类型表示布尔值。Dart只有字面量 true 和 false 是布尔类型,这两个对象都是编译时常量。


3.3.4 List


在Dart中,List表示列表,和数组是同一概念。Dart中的List类型和JavaScript中的Array类型是类似的。

//通过字面量创建Listvar list = [1, 2, 3];


3.3.5 Set


在Dart中Set是一个元素唯一且无序的集合。

//通过字面量创建Setvar halogens = {'fluorine''chlorine''bromine''iodine''astatine'};
//创建一个空集var names = <String>{};//或Set<String> names = {};
//这样会创建一个Map,而不是Setvar names = {}; 


3.3.6 Map


通常来说, Map 是用来关联 keys 和 values 的对象。keys 和 values 可以是任何类型的对象。在一个 Map 对象中一个 key 只能出现一次,但是 value 可以出现多次。

//通过字面量创建Mapvar gifts = {  // Key: Value 'first': 'partridge', 'second': 'turtledoves', 'fifth': 'golden rings'};
//通过构造函数创建Mapvar gifts = new Map();gifts['first'] = 'partridge';gifts['second'] = 'turtledoves';gifts['fifth'] = 'golden rings';


3.3.7 Rune


在 Dart 中,Rune 用来表示字符串中的 UTF-32 编码字符。


表示 Unicode 编码的常用方法是 \uXXXX, 这里 XXXX 是一个4位的16进制数。对于特殊的非 4 个数值的情况,把编码值放到大括号中即可。

var clapping = '\u{1f44f}';print(clapping);//

以上是关于《Flutter》-- 3.Dart语言的主要内容,如果未能解决你的问题,请参考以下文章

Dart 入门教程 Dart 简介与安装

Dart 入门教程 Dart 简介与安装

错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段