Date
Jul. 14th, 2024
 
2024年 6月 9日

Post: Dart Primer 002 : 数据类型概述

Dart Primer 002 : 数据类型概述

Published 12:05 May 17, 2018.

Created by @ezra. Categorized in #Programming, and tagged as #Dart.

Source format: Markdown

Table of Content

Dart 中一切实例都是对象, 它们集成自 Object 且默认均为 null

数据类型

Dart 中主要的数据类型有:

  • Numbers => 数值
  • Strings => 字符串
  • Booleans => 逻辑值
  • List => 列表
  • Maps => 映射

声明变量

我们可以使用 var 关键字或者类型名来进行变量声明:

var str1 = "Some string";
// or:
String str2 = "Another string";

注释

你可以使用 // 进行注释。

var a = "string";
// 这是一句注释

打印

你可以使用 print 语句进行打印:

print("string"); // 输出字面值 "string"
print("br: \n"); // 输出字面值 "br: " 以及一个新行
print(r"br: \n"); // 输出字面值 "br: \n"

assert

在检查模式中, 与很多语言类似, 你也可以使用 assert 语句断言。

var name = "Ezra";
assert(name == "Bob"); // 这里判断会失败, 检查模式下程序将被终止。

字符串

字符串可以使用成对的单引号 (') 和双引号 (") 包含:

var str1 = "I'm Bob.";
var str2 = 'I\'m Tom.';

var str3 = 'I am a "Monster".';

你也可以使用多行字符串:

var str4 = '''Dart lang:
Hello, world! (1)
''';

var str5 = """Dart lang:
Hello, world! (2)
""";

相邻的字符串会被自动连接:

var str6 = 'Ezra'' ''Lee';
// 这里有三个字符串分别是 'Ezra' 和 ' ' 以及 'Lee'

常量: const 与 final

其实基本的数据类型有很多丰富的特性, 这里暂时不做过多赘述。

现在我们来了解一下 constfinal, 与其他主流语言中的用法基本一致。

在声明变量时, 前面提到了可以使用类型名和 var

事实上, 我们还可以额使用 constfinal, 声明常量, 它们的值是不可变的, 因此要求在声明时初始化。

var i = 10;
const i = 10;
final i = 10;

int i = 10;
const int i = 10;
final int i = 10;

其中, constfinal 也有细微差别, 简单来说:

  • const 定义的是编译时常量,只能用编译时常量来初始化
  • final 定义的常量可以用变量来初始化

例如:

final time1 = new DateTime.now(); // 正确
const time2 = new DateTime.now(); // 错误 new DateTime.now() 不是 const 常量

const list1 = const [1,2,3]; // 正确
const list2 = [1,2,3]; // 错误

final list3 = [1,2,3]; // 正确
final list4 = const [1,2,3]; // 正确
final list5 = const [new DateTime.now(),2,3]; // 错误, const 右边必须是常量
Pinned Message
HOTODOGO
I'm looking for a SOFTWARE PROJECT DIRECTOR / SOFTWARE R&D DIRECTOR position in a fresh and dynamic company. I would like to gain the right experience and extend my skills while working in great teams and big projects.
Feel free to contact me.
For more information, please view online résumé or download PDF
本人正在寻求任职 软件项目经理 / 软件技术经理 岗位的机会, 希望加⼊某个新鲜⽽充满活⼒的公司。
如有意向请随时 与我联系
更多信息请 查阅在线简历下载 PDF