[Dart]Dart语言之旅<一>:简介

待兔 等级 344 0 0

我们假定你已经知道如何用另一种语言编程,《Dart语言之旅》将向你展示了如何使用每个主要的Dart特性——从变量和运算符到类和库。

一个基本的Dart程序

下面的代码使用了许多Dart最基本的功能:

// Define a function.
printNumber(num aNumber) {
  print('The number is $aNumber.'); // Print to console.
}

// This is where the app starts executing.
main() {
  var number = 42; // Declare and initialize a variable.
  printNumber(number); // Call a function.
}

以下是适用于所有(或者说是几乎所有)的Dart应用程序的语法:

  • // This is a comment. 使用//表示改行的后面部分是注释。或者也可以使用/* ... */。更多详细内容,请看注释

  • num 一种内置类型,其他的内置类型是String,int和bool。

  • 23 数字。数字在编译时是常量。

  • print() 一个方便的输出显示方式。

  • '...' (或 "...")

字符串。

  • $variableName (或 ${expression}) 字符串插值:在字符串中包含一个变量或表达式的字符串。有关更多信息,请参阅字符串。

  • main()

应用程序执行的开始,是一个特殊的,必需的顶级函数。有关更多信息,请参阅main()函数。

  • var 一种不指定类型的声明变量的方法。

注意: 我们的代码遵循Dart风格指南中的约定。例如,我们使用双空格缩进。

重要概念

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

  • 你可以放在变量中的所有东西都是一个 object,每个对象都是一个 class 的实例。偶数,函数和null都是对象。所有对象都继承自Object类。

  • 指定静态类型(例如前面示例中的num)可以阐明你的意图并启用静态工具检查。 (你可能会注意到当你调试代码时,没有指定类型的变量会获得特殊类型:dynamic。)在Dart 1.x中指定静态类型是可选的,但是Dart正朝着类型安全的语言发展。

  • 在强模式(strong mode)下,静态和运行时会检查确保你的代码是类型安全的,帮助你在开发中而不是运行时就捕获错误。在Dart 1.x中强模式是可选的,但在Dart 2中不可选。
  • 在运行之前,Dart会解析所有的代码。你可以向Dart提供提示(例如,通过使用类型或编译时常量)来捕获错误或使你的代码更快地运行。
  • Dart支持顶级函数(如main()),以及与类或对象绑定的函数(分别为 static 和 instance 方法)。你也可以在函数中创建函数(嵌套函数局部函数)。
  • 同样,Dart支持顶级变量以及绑定到类或对象(静态变量和实例变量)的变量。实例变量有时称为字段或属性。
  • 与Java不同,Dart没有public,protected和private关键字。如果标识符以下划线(_)开头,则它是私有的。有关详细信息,请参阅库和可见性。
  • 标识符可以以字母或_开头,然后是这些字符和数字的任意组合。
  • 有时候重要的是某件事是一种_表达(expression)还是一种_陈述(statement),所以我们会对这两个词做精确的描述。
  • Dart工具可以报告两种问题:警告和错误。警告只是表明你的代码可能无法正常工作,但它们不会阻止你的程序执行。错误可以是编译时错误或运行时错误:编译时错误导致代码无法执行,运行时错误导致代码执行时引发异常。
  • Dart 1.x有两种运行模式:生产和检查。我们建议你在检查模式下开发和调试,然后在生产模式部署。生产模式是Dart程序的默认运行模式,它针对速度进行了优化。生产模式会忽略断言语句和静态类型。检查模式是一种开发友好模式,可帮助你在运行时捕获某些类型的错误。例如,如果你将一个非数字变量传入一个num类型的值,则检查模式会抛出一个异常。

Dart 2的提示: Dart 2中移除了检查模式。更多信息请看Dart 2升级。

关键字

下表列出了Dart语言会特别处理的词语。

abstract deferred if super
as do implements switch
assert dodynamic import sync
async else in this
enum is throw await
export library true break
external new try case
catch factory operator var
class false part void
const final rethrow while
continue finally return with
covariant for set yield
default get static
收藏
评论区

相关推荐

[Dart]Dart语言之旅<一>:简介
我们假定你已经知道如何用另一种语言编程,《Dart语言之旅》将向你展示了如何使用每个主要的Dart特性——从变量和运算符到类和库。 一个基本的Dart程序 下面的代码使用了许多Dart最基本的功能: // Define a function. printNumber(num aNumber) { print('The number is $a
IDEA 配置 Dart 开发环境,以及创建第一个 Dart 项目
IDEA 配置 Dart 开发环境,以及创建第一个 Dart 项目 1、打开 IDEA 会看到如下页面,点击右下角的 Configure,然后点击 Plugins Launch Page 2、在新打开的页面中搜索 Dart,可以看到如下的搜索结果,然后点击右侧面板的 insta
Dart官方文档翻译(一)(Dart之旅)
这篇文章将会向你展示如何使用Dart的每一个知识点,包括变量,操作符,类,类库,但这是在你已经有一个其他语言的编码经验的前提下。 为了学习Dart更多关于Dart的核心类库,请查看A Tour of the Dart Libraries,当你想知道更多语言特征,挺查阅Dart language specification 你可以通过DartPad 来尝试
<Dart基础>Dart简介
Dart基础系列: Dart简介(https://www.jianshu.com/p/c749f40828a5) Dart语法(上)(https://www.jianshu.com/p/6b5689342e24) <基础Dart语法(下)(https://www.jianshu.com/p/7c3eba46e679) 一、简
Dart基础&gt;Dart语法(上)
Dart基础系列: Dart简介(https://www.jianshu.com/p/c749f40828a5) Dart语法(上)(https://www.jianshu.com/p/6b5689342e24) <基础Dart语法(下)(https://www.jianshu.com/p/7c3eba46e679) 说明:
Dart基础语法简介
Dart基础系列: Dart简介(https://www.jianshu.com/p/c749f40828a5) Dart语法(上)(https://www.jianshu.com/p/6b5689342e24) <基础Dart语法(下)(https://www.jianshu.com/p/7c3eba46e679) 一、简
flutter -- dart基础之dart简介和安装
Dart介绍: Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。 Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。 要学Flutter的话我们必须首先得会Dart。 da
Dart | 浅析dart中库的导入与拆分
前言 最近十分热门的跨平台框架使用了一门比较生僻的编程语言dart。dart语言本身深受早期一些编程语言的影响。特别是Smalltalk,Java和JavaScript。我是从Java语言向dart过度的,一开始感觉很不错,快速就对这门语言有了一个初步的认识,并能够写小段代码了。 但在flutter的不断学习过程中,我遇到了不少因为dart的一些语
Dart教程(一):dart安装
一、安装dart sdk brew tap dartlang/dart brew install dart 二、安装VSCode 去官网下载即可 三、安装dart插件 (https://imghelloworld.osscnbeijing.aliyuncs.com/af7d1de25caf6599a4839b56f4f0d
Dart 入门中文教程
一、开篇 dart 语言具有如下特性 一切变量皆是对象,每个对象都是类的实例。int、double、null、函数等都是对象,所有对象都继承自 Object 类 dart 是强类型语言,但由于具备类型推导功能所以类型声明是可选的 dart 支持顶级函数、静态函数、实例函数,也允许在函数中嵌套函数,即局部函数。类似的,dart 也支持顶级
【Flutter 实战】Dart语言简介
1.4 Dart语言简介在之前我们已经介绍过Dart语言的相关特性,读者可以翻看一下,如果读者已经熟悉Dart语法,可以跳过本节,如果你还不了解Dart,也不用担心,按照笔者经验,如果你有过其他编程语言经验(尤其是Java和JavaScript)的话会非常容易上手Dart。当然,如果你是iOS开发者,也不用担心,Dart中也有一些与Swift比较相似的特
【Flutter实战】Dart线程模型及异常捕获
2.6 Flutter异常捕获在介绍Flutter异常捕获之前必须先了解一下Dart单线程模型,只有了解了Dart的代码执行流程,我们才能知道该在什么地方去捕获异常。 2.6.1 Dart单线程模型在Java和ObjectiveC(以下简称“OC”)中,如果程序发生异常且没有被捕获,那么程序将会终止,但是这在Dart或JavaScript中则不会!
Dart中的抽象类、多态、以及接口
一、Dart中的抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。   1、抽象类通过abstract 关键字来定义   2、Dart中的抽象方法不能用abstract声明
Flutter - 深入理解Dart虚拟机启动
基于Flutter 1.5,从源码视角来深入剖析引擎启动中的Dart虚拟机启动流程,相关源码目录见文末附录一、概述 1.1 Dart虚拟机概述Dart虚拟机拥有自己的Isolate,完全由虚拟机自己管理的,Flutter引擎也无法直接访问。Dart的UI相关操作,是由Root Isolate通过Dart的C调用,或者是发送消息通知的方式
Dart虚拟机运行原理
一、Dart虚拟机 1.1 引言Dart VM是一种虚拟机,为高级编程语言Dart提供执行环境,但这并意味着Dart在D虚拟机上执行时,总是采用解释执行或者JIT编译。 例如还可以使用Dart虚拟机的AOT管道将Dart代码编译为机器代码,然后运行在Dart虚拟机的精简版环境,称之为预编译运行时(precompiled runtime)环境,该环境不包含任何