【Flutter-Dart跨平台开发】02-一个基础的Dart程序+重要概念+关键词

一个基础的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)。

在关键字表中的所有单词都是保留字。不能使用保留字作为标识符。

你可能感兴趣的:(【Flutter-Dart跨平台开发】02-一个基础的Dart程序+重要概念+关键词)