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

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

一个基本的Dart程序

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

1// Define a function. 2printNumber(num aNumber) { 3 print('The number is $aNumber.'); // Print to console. 4} 5 6// This is where the app starts executing. 7main() { 8 var number = 42; // Declare and initialize a variable. 9 printNumber(number); // Call a function. 10} 11

以下是适用于所有(或者说是几乎所有)的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语言会特别处理的词语。

abstractdeferredifsuper
asdoimplementsswitch
assertdodynamicimportsync
asyncelseinthis
enumisthrowawait
exportlibrarytruebreak
externalnewtrycase
catchfactoryoperatorvar
classfalsepartvoid
constfinalrethrowwhile
continuefinallyreturnwith
covariantforsetyield
defaultgetstatic
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

Dart | 浅析dart中库的导入与拆分

前言最近十分热门的跨平台框架使用了一门比较生僻的编程语言dart。dart语言本身深受早期一些编程语言的影响。特别是Smalltalk,Java和JavaScript。我是从Java语言向dart过度的,一开始感觉很不错,快速就对这门语言有了一个初步的认识,并能够写小段代码了。但在flutter的不断学习过程中,我遇到了不少因为dart的一些语

Dart虚拟机运行原理

一、Dart虚拟机1.1引言DartVM是一种虚拟机,为高级编程语言Dart提供执行环境,但这并意味着Dart在D虚拟机上执行时,总是采用解释执行或者JIT编译。例如还可以使用Dart虚拟机的AOT管道将Dart代码编译为机器代码,然后运行在Dart虚拟机的精简版环境,称之为预编译运行时(precompiledruntime)环境,该环境不包含任何

flutter -- dart基础之dart简介和安装

Dart介绍:Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用和物联网等领域的开发。Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。要学Flutter的话我们必须首先得会Dart。da

[Dart]Dart语言之旅<二>:变量

变量以下是创建变量并为其分配值的示例:varname'Bob';变量是引用。名为name的变量包含对值为“Bob”的String类型的对象的引用。默认值未初始化的变量的初始值为null。即使是数字类型的变量,初始值也为null,因为数字也是对象。intlineCount;assert(lineCountnull)