本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 Flutter教程在这里
当你学习Dart语言时,记住这些事实和概念:
null
都是对象。所有对象都继承自Object
。var number = 42;
,number被推断为int类型。当你不想显示地声明一个变量的类型,那么您可以使用特殊类型dynamic
。List<int>
(一个数字列表)或者List<dynamic>
(一个任何类型的列表).main()
),以及绑定到类或对象(分别是静态方法和实例方法)的函数。您还可以在函数(嵌套或局部函数)中创建函数。abstract | do | import | super |
as | dynamic | in | switch |
as | else | interface | sync* |
async | enum | is | this |
async* | export | library | throw |
await | external | mixin | true |
break | extends | new | try |
case | factory | null | typedef |
class | final | part | void |
const | finally | rethrow | while |
continue | for | return | with |
covariant | get | set | yield |
default | if | static | yield* |
deferred | implements |
以上的字段均为保留字段,不能用于标识符。
下面的代码展示了创建一个变量并进行初始化:
var name = 'Bob';
变量存储引用。名为name的变量包含对字符串对象的引用,值为“Bob”。 变量name的类型被推断为String,但是您可以通过指定它来更改该类型。如果对象不限于单个类型,则指定对象或动态类型,遵循设计指导原则。
dynamic name = 'Bob';
另一种方式是显式声明要推断的类型:
String name = 'Bob';
未初始化的变量的初始值为null
。甚至具有数字类型的变量最初也是null,因为数字就像dart中的其他东西一样也是对象。
int lineCount;
assert(lineCount == null);
注意:在生产代码中,assert()调用将被忽略。在开发期间,
assert(condition)
抛出异常,除非条件为真。