美文网首页Dart教程程序员
Dart In Action -Dart快速入门(二)

Dart In Action -Dart快速入门(二)

作者: JarvanMo | 来源:发表于2018-07-20 17:39 被阅读15次

    写在前面

    本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。
    Flutter教程在这里

    Dart的一些重要概念

    当你学习Dart语言时,记住这些事实和概念:

    • 每个变量都是一个对象,而每个对象都是类的实例。甚至数字、函数和null都是对象。所有对象都继承自Object
    • 尽管Dart是强类型的,但是类型注释是可选的,因为Dart可以推断类型。在之前上一节的代码中var number = 42;,number被推断为int类型。当你不想显示地声明一个变量的类型,那么您可以使用特殊类型dynamic
    • Dart是支持泛型,如List<int>(一个数字列表)或者List<dynamic>(一个任何类型的列表).
    • Dart支持顶级函数(如main()),以及绑定到类或对象(分别是静态方法和实例方法)的函数。您还可以在函数(嵌套或局部函数)中创建函数。
    • 类似地,Dart支持顶级变量,以及绑定到类或对象(静态和实例变量)的变量。实例变量有时被称为字段或属性。
    • 与Java不同的是,Dart没有关键字public、protected和private。如果标识符以下划线(_)开头,则该标识符对其库是私有的。 在之后的教程中我们会详细讲解。
    • 标识符(变量名、方法名、类名)可以以字母或下划线(_)开头,后面的可以是这些字符加上数字的任何组合。
    • Dart工具可以报告两种问题:警告和错误。警告只是表明您的代码可能不工作,但它们不会阻止您的程序执行。错误可以是编译时错误,也可以是运行时错误。编译时错误阻止了代码的执行;运行时错误导致代码执行时引发异常。

    关键字

    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)抛出异常,除非条件为真。

    相关文章

      网友评论

        本文标题:Dart In Action -Dart快速入门(二)

        本文链接:https://www.haomeiwen.com/subject/uztqmftx.html