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
其实基本的数据类型有很多丰富的特性, 这里暂时不做过多赘述。
现在我们来了解一下 const
和 final
, 与其他主流语言中的用法基本一致。
在声明变量时, 前面提到了可以使用类型名和 var
。
事实上, 我们还可以额使用 const
和 final
, 声明常量, 它们的值是不可变的, 因此要求在声明时初始化。
var i = 10;
const i = 10;
final i = 10;
int i = 10;
const int i = 10;
final int i = 10;
其中, const
和 final
也有细微差别, 简单来说:
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 右边必须是常量