(一)Dart语言简介

前言

最近要做flutter项目,Dart语法自然是前提,于是就在Dart学习和理解的过程中做了一些适合自己的知识总结,同时也希望大家能快速的学习,少走弯路。另外自己理解、整理、总结或输入过长中难免有误,不吝指教,感激不尽!

一、Dart关键字镇楼

abstract 1 continue false new this
as 1 default final null throw
assert deferred1 finally operator1 true
async 2 do for part1 try
async *2 dynamic1 get1 rethow typedef1
await 2 else if return var
break enum implements1 set1 void
case export1 import1 static1 while
catch external1 in super with
class extends is switch yield2
const factory1 library1 sync*2 yield*2

关键字右上角带有上标 1 的关键字是 内置关键字。避免把内置关键字当作标识符类名类型名使用。 有些内置关键字是为了方便把 JavaScript 代码移植到 Dart 而存在的。 例如,如果 JavaScript 代码中有个变量的名字为 factory, 在移植到 Dart 中的时候,你不必重新命名这个变量。

关键字右上角带有上标 2 的关键字,是在 Dart 1.0 发布以后又新加的,用于支持异步相关的特性。 你不能在标记为 asyncasync*、或者 sync* 的方法体内 使用 asyncawait、或者 yield 作为标识符。

除此之外,其他单词也都是 保留词,也不能用保留词作为关键字

二、语言特性杂谈

  • 所有能够使用变量引用的都是对象, 每个对象都是一个类的实例。在 Dart 中甚至连 数字方法null 都是对象。所有的对象都继承于 Object 类。

  • Dart语言是动态类型语言,可以省略变量类型,但是经验告诉我们尽量给变量定义一个数据类型,会更安全。没有显示定义类型的变量在 debug 模式下会类型会是 dynamic(动态的)。

  • 和 Java 不同的是,Dart 没有 public、 protected、 和 private 关键字。如果一个标识符以下划线 _ 开头,则该标识符 在库内是私有的。

  • 标识符可以以字母或者 _ 下划线开头,后面可以是 其他字符和数字的组合。

  • 没有初始化的变量都会被赋予默认值 null。

  • Dart 在 running 之前解析你的所有代码,指定数据类型和编译时的常量,可以提高运行速度。

  • Dart语言的类和接口是统一的,类即接口,你可以继承一个类,也可以实现一个类(接口),自然也包含了良好的面向对象和并发编程的支持

  • final的值只能被设定一次。const 是一个编译时的常量,可以通过 const 来创建常量值,var c=const[];,这里 c 还是一个变量,只是被赋值了一个常量值,它还是可以赋其它值。实例变量可以是 final,但不能是 const。

  • Dart 支持顶级方法 (例如 main()),同时还支持在类中定义函数(静态函数和实例函数)。 你还可以在方法中定义方法(嵌套方法或者局部方法)。

  • Dart 还支持顶级变量,以及 在类中定义变量(静态变量和实例变量)。 实例变量有时候被称之为域(Fields)或者属性(Properties)。

  • 有时候 表达式(expression)语句(statement) 是有区别的,所以这种情况我们会分别指明每种情况。

  • Dart 工具可以指出两种问题:警告和错误。

  • Dart是强类型语言(Dart2开始)。

参考资料

你可能感兴趣的:((一)Dart语言简介)