前言
参考资料
最近要做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 发布以后又新加的,用于支持异步相关的特性。 你不能在标记为 async
、 async*
、或者 sync*
的方法体内 使用 async
、 await
、或者 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开始)。
网友评论