原文地址:https://www.jianshu.com/p/3d927a7bf020
承接上一篇我们搭建了Dart环境,这一篇我们将学习Dart的基础语法。
Dart的所有东西都是对象,包括数字,函数等。
它们都继承自Object,默认是都是null(包括数字),所以数字,字符串都可以调用各种方法。
一、Dart中的关键字(56个)
33个保留字(不能使用保留字作为标识符)
关键字 | - | - | - |
---|---|---|---|
if | superdo | switch | assert |
else | in | this | enum |
is | throw | true | break |
new | try | case | extends |
null | typedef | catch | var |
class | false | void | const |
final | rethrow | while | continue |
finally | return | with | for |
default |
内置标志符有:(17个)
关键字 | - | - | - |
---|---|---|---|
abstract | deferred | as | dynamic |
covariant | export | external | factory |
get | implements | import | library |
operator | part | set | static |
typedef |
Dart2相对于Dart1新增的,支持异步功能的关键字有:(6个)
关键字 | - | - | - |
---|---|---|---|
async | async* | await | sync* |
yield | yield* |
跟java相比,Dart特有的关键字有:(25个)
关键字 | - | - | - |
---|---|---|---|
deferred | as | assert | dynamic |
sync* | async | async* | in |
is | await | export | library |
external | typedef | factory | operator |
var | part | const | rethrow |
covariant | set | yield | get |
yield* |
二、变量和常量
(一)变量的声明,可以使用 var、Object 或 dynamic 关键字。
创建变量并初始化变量实例:
//Dart语言本质上市动态类型语言,类型是可选的 //可以使用var声明变量,也可以使用类型(比如String)来直接声明变量 //一个变量也可以被赋予不同类型的对象 //但是大多数情况,我们不会去改变一个变量的类型 //字符串赋值的时候,可以使用单引号,也可以使用双引号。 var str = "this is string vlaues.";
变量存储引用。
- 使用Object或dynamic关键字
dynamic name = "张三";调用的变量name包含对String值为“张三” 的对象的引用。
name推断变量的类型是String,但可以通过指定它来更改该类型。
如果对象不限于单一类型(没有明确的类型),请使用Object或dynamic关键字
Object name1 = "小明"; dynamic name2 = "老王";
- 显式声明将被推断的类型
比如String,int等。
//可以使用String显示声明字符串类型 String str1 = "dart str";
(二)默认值
未初始化的变量的初始值为null(包括数字),因此数字、字符串都可以调用各种方法,这个我们上面有提到。//我们先声明一个int类型的变量 int intDefaultValue; //assert 是语言内置的断言函数,仅在检查模式下有效 //在开发过程中,除非条件为真,否则会引发异常。(断言失败则程序立即终止) assert(intDefaultValue == null); //打印结果为null, 说明数字类型初始化值为null print(intDefaultValue);
(三)Final and const
如果您从未打算更改一个变量,那么使用 final 或 const,不是var,也不是一个类型。
一个 final 变量只能被设置一次;const 变量是一个编译时常量。(Const变量是隐式的final。)
final的顶级或类变量在第一次使用时被初始化。
- 被final或者const修饰的变量,变量类型可以省略。