Flutter必备语言Dart教程01 - 变量,类型,函数

382 阅读3分钟

Hello World

致敬经典 'Hello World' 程序。

与Java类似,每个Dart程序都必须有一个main作为其入口点。

要运行程序,请将其保存在名为“hello_world.dart”的文件中,并在终端中执行以下命令。(如果没有dart环境,请先完成安装。)

定义变量

就像在JavaScript中一样,您可以使用var关键字来定义变量。

但是!与JavaScript不同,在Dart 2中,一旦分配了类型,就无法将具有新类型的值重新分配给变量。 Dart会自动从右侧推断数据类型。

您还可以通过显式提供数据类型来定义变量。

如果您不打算更改变量所持有的值,则使用final或const声明它。

final 和 const之间的区别在于:

const变量是编译时常量,即const变量在编译期间必须有一个值,例如const PI = 3.14;

虽然final的变量只能分配一次,但它们不需要在编译期间分配,并且可以在运行时分配。也就是说,final的变量可以先不赋值,稍后在其他地方赋值。

内置数据类型

Dart提供了您可以从现代语言中获得的所有基本数据类型。

  • Numbers
  • Strings
  • Booleans
  • Lists
  • Maps

Lists

声明一个列表非常简单,使用方括号[]可以简单地定义一个列表。以下是列表中的一些常见操作。

如果要定义一个编译时常量的List,即列表内容不可更改,则使用const关键字。

Maps

定义Map同样直截了当。使用花括号{}来定义Map。

您还可以使用Map构造函数定义map。

如果要定义编译时常量的Map,即map的内容不可更改,则使用const关键字。

函数

Dart中的函数尽可能简单,有点类似于javascript。您需要做的就是提供名称,返回类型和参数。

您甚至可以省略返回类型,程序仍然有效。

这是编写单行函数的简便方法。

命名参数

Dart有一个叫做命名参数的东西,当使用命名参数时,你必须在调用函数时指定参数的名称。要启用命名参数,只需使用大括号{}将参数包装在函数中。

如果在使用命名参数调用函数时未提供名称,则程序将崩溃。

默认参数值

您可以为命名参数指定默认值,从而在调用函数时使它们成为可选参数。在下面的示例中,我们为lastName指定了一个默认值。

函数是一等公民

在Dart中,函数非常灵活,例如,你可以在另一个函数中传递一个函数。对于这一点,JavaScript开发者应该很熟悉了。

在这里,我定义了一个名为out的函数,它接受一个参数:一个函数(具有参数message)。然后我定义了一个名为printOutLoud的函数,它所做的就是以大写形式打印一个字符串。

Dart也有匿名函数,所以在上面的例子中,我们可以传递一个匿名函数而不是预定义函数(printOutLoud)。

另一个匿名函数的例子。


系列文章:

Flutter必备语言Dart教程02 - 控制流,异常