Flutter学习(二)Dart变量与内建类型

2020-11-07  本文已影响0人  沉睡的睦月余音

学习Flutter,必然要学习Dart语言。官方提供DartPad直接在线上体验dart语言功能。

Dart是以main方法作为官方入口的,这点和java很像。Dart简单示例:

// 定义一个函数

printInteger(int aNumber) {

  print('The number is $aNumber.'); // 打印到控制台。

}

// 应用从这里开始执行。

main() {

  var number = 42; // 声明并初始化一个变量。

  printInteger(number); // 调用函数。

}

Dart中需要记住的一些概念:

1 任何保存在变量中的都是一个对象, 并且所有的对象都是对应一个类的实例。无论是数字,函数和 null 都是对象。所有对象继承自 Object 类。

2 var定义的变量不需要指定变量类型。尽管 Dart 是强类型的,但是 用var声明的变量可以根据赋值推断类型

3 Dart 支持泛型,如: List <int> (整数列表)或 List <dynamic> 

4 Dart 支持顶级函数(如 main() ), 函数绑定在类或对象上(分别是 静态函数 和 实例函数 )。 以及支持函数内创建函数 ( 嵌套 或 局部函数 )。

5 Dart 支持顶级变量 ,变量绑定在类或对象上(静态变量和实例变量)。 实例变量有时称为字段或属性。

6 Dart 没有关键字 “public” , “protected” 和 “private” 。 如果标识符以下划线(_)开头,则它相对于库是私有的。

7 标识符以字母或下划线(_)开头,后跟任意字母和数字组合

8 Dart 语法中包含有运行时值的表达式( expressions )和没有运行时值的语句( statements )

9 Dart 工具提示两种类型问题:警告和错误。警告只是表明代码可能无法正常工作,但不会阻止程序的执行。 错误可能是编译时错误或者运行时错误。 编译时错误会阻止代码的执行; 运行时错误会导致代码在执行过程中引发 [异常](#exception)

变量相关

声明变量的方式:

1 使用var声明

不需要指定变量类型,但是通过赋值,可以推断类型

2 使用dynamic声明

对象不限定为单个类型,可以指定为对象类型或动态类型

3 显式的声明

指定具体的类型

未初始化的变量的默认值是null,不存在undefined类型,主要是Dart中使用变量定义的都是对象。

定义常量

final变量的值只能被设置一次;const 变量在编译时就已经固定;实例变量可以是 final 类型但不能是 const 类型。如果 const 变量是类级别的,需要标记为 static const,这点和java很像。const 关键字不仅可以用于声明常量变量, 还可以用来创建常量值,以及声明创建常量值的构造函数。我的理解是,如果定义常量值,即使是List实例,修改其中的元素,也是无法编译通过的。

内建类型

Number

    int: 整数值不大于64位, 范围是:-2^63 到 2^63 - 1具体取决于平台。Dart 被编译为 JavaScript 时,值的范围从 -2^53 到 2^53 - 1。

    double: 64位(双精度)浮点数。

String

    Dart 字符串是一组 UTF-16 单元序列。 字符串通过单引号或者双引号创建。字符串可以通过 ${expression} 的方式内嵌表达式。使用 + 运算符来把多个字符串连接起来。使用连续三个单引号或者三个双引号实现多行字符串对象的创建。

Boolean

    Dart 使用 bool 类型表示布尔值。 Dart 只有字面量 true and false。

List

    是 array 或有序的对象集合。数组的下标索引从 0 开始,第一个元素的索引是 0。 list.length - 1 是最后一个元素的索引。在 List 字面量之前添加 const 关键字,可以定义 List 类型的编译时常量。

Set

    在 Dart 中 Set 是一个元素唯一且无需的集合。创建一个空集,使用前面带有类型参数的 {} ,或者将 {} 赋值给 Set 类型的变量。使用 add() 或 addAll() 为已有的 Set 添加元素。使用 .length 来获取 Set 中元素的个数。在 Set 字面量前增加 const ,来创建一个编译时 Set 常量

var names = <String>{};

Map

    Map 是用来关联 keys 和 values 的对象。 keys 和 values 可以是任何类型的对象。

Rune 

在 Dart 中, Rune 用来表示字符串中的 UTF-32 编码字符。

Symbol

一个 Symbol 对象表示 Dart 程序中声明的运算符或者标识符。

上一篇下一篇

猜你喜欢

热点阅读