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)。
另一个匿名函数的例子。