一个基础的Dart程序+重要概念+关键词
一、一个基础的Dart程序
1、在Android Studio开发工具里创建一个Flutter Demo,删除main.dart里面的所有代码。
2、不带参数的函数,如:打印一个Hello World
//Dart程序入口
void main() {
//打印一个:Hello World
printFirst(); //调用函数方法
}
//方法
printFirst() {
print('Hello World'); //打印
}
//使用 // 来表示剩下的行是一个注释,也可以使用 /*...*/ 来注释,细节请见 注释(Comments);
3、带参数的函数:如打印一个数字
(1)在main里调用
// var 一种特殊的方式来声明变量,不用特指变量类型。
var myMum = 666;//声明并初始化变量
printNumber(myMum);//调用函数
(2)函数
//定义一个带参数函数
printNumber(num aNumber) {
print('打印出来的数字是:$aNumber'); // 输出至控制台.
}
名词解释:
1)、num 是一个数据类型,定义在语言中。同样的类型还有String,int,bool。
就是说Dart语言是有数据类型的概念的。这点与Python语言不同。
2)print() 是显示输出的方法,打印。
3)var 定义了一个变量,但是没有指定特定的数据类型。
4)按照Dart 的编程规范,使用2个空格来缩进。
这一点与Python 语言建议的4个空格不一样。
二、重要的概念
(1)每个变量都是一个对象,每个对象是一个类的实例。甚至数字,函数,和null都是对象。所有对象都继承自Object类。
(2)指定静态类型(如num前面的例子中)讲清意图,用 tools 开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会得到一个特殊的类型: dynamic )Dart 语言是弱数据类型。
(3)Dart解析所有的代码运行之前。可以对Dart提供提示,例如,通过使用类型或编译时间常数来捕获错误或帮助代码运行更快。
(4)Dart支持顶级函数(如main())也支持类或者对象(静态和实例方法分别支持)里的函数。还可以在函数里创建函数(嵌套或局部功能)。
(5)类似的,Dart支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。
(6)与Java不同,Dart不具备关键字public,protected和private。如果一个标识符以下划线(_)开始,那么它和它的库都是私有的。
(7)标识符可以字母或(_)开始,或者是字符加数字的组合开头。
(8)有时,判断是一个表达式还是一个语句会很重要,所以我们要准确了解这两个单词。
(9)Dart tools可报告两类问题:警告(warning)和错误(error)。警告只是迹象表明,代码可能无法正常工作,但他们不会阻止程序的执行。错误可以是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会导致一个 异常(exception)被抛出。
(10)Dart有两种运行模式:生产 (production) 和检查 (checked) 。我们建议在检查模式开发和调试,并将其部署到生产模式。
(11)Production mode是Dart程序一个速度优化的默认运行模式。Production mode忽略 断言语句(assert statements) 和静态类型。
(12)Checked mode 是开发人员友好的方式,可以帮助你在运行时捕捉一些类型的错误。例如,如果分配一个非数字来声明为一个 num 变量,然后在检查模式会抛出异常。
三、关键词
下面表格列出了 Dart 语言的关键字:
关键字 关键字 关键字 关键字 关键字
abstract 1 continue false new this
as 1 default final null throw
assert deferred 1 finally operator 1 true
async 2 do for part 1 try
async* 2 dynamic 1 get 1 rethrow typedef 1
await 2 else if return var
break enum implements 1 set 1 void
case export 1 import 1 static 1 while
catch external 1 in super with
class extends is switch yield 2
const factory1 library 1 sync* 2 yield* 2
上标1的单词是内置的标识符(built-in identifiers)。避免使用表格内的标识作为符标识,而且从来不使用它们作为类(class)或类型(type)的名称。内置标识符存在,以方便从 JavaScript 到 Dart 的移植。例如,如果一些JavaScript代码中有一个名为工厂的变量,当你将代码移植到 Datr 中,你不必重新命名它。
上标2的单词是的Dart1.0版本之后添加异步支持较新的、有限的保留字。不能使用async,await,或yield作为在标有async,或sync的任何函数体的标识符。欲了解更多信息,请参见 异步性支持(Asynchrony support)。
在关键字表中的所有单词都是保留字。不能使用保留字作为标识符。