目录
1. 默认值
2. num 数值类型
1. int 整型
2. double 浮点型
3. String 字符串类型
4. bool 布尔值类型
5. List 数组类型
6. Map 键-值对集合类型
7. Set 元素唯一的集合类型
8. Rune UTF-32 编码字符
9. Symbol 符号类型
类似JavaScript,Dart也是一种面向对象语言,但是它采用基于类编程。它只允许单一继承,语法风格接近C语言。
void main() {
print("hello world");
}
Dart语言中对于为初始化的值统一默认为null,不管是字符串还是数值类型。
int
和 double
都是num 的子类型。 num 类型包括基本运算 +, -, /, 和 *, 以及 abs()
, ceil()
, 和 floor()
, 等函数方法。可以到 dart:math 库里面查文档
整数值不大于64位, 具体取决于平台。 在 Dart VM 上, 值的范围从- 到 - 1. Dart 被编译为 JavaScript 时,使用 JavaScript numbers 值的范围从 - 到 - 1
双精度浮点数,依据 IEEE 754 标准
1.单引号或者双引号创建
var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";
2.${
expression
}
表达式是一个变量,则 {} 可以省略。 在 Dart 中通过调用就对象的 toString()
方法来得到 对象相应的字符串。如果自定义的bean没有重写toString()方法,会打印 Instance of xxx
var s = 'string interpolation';
print(${s.toUpperCase()});
3. +
运算符
把多个字符串连接为一个,也可以把多个字面量字符串写在一起来实现字符串连接
var s2 = 'The + operator ' + 'works, as well.';
var s3 = s2 + '123';
4. 三个单引号或双引号
实现多行字符串对象的创建
var s2 = """This is also a
multi-line string.""";
5.r
前缀
创建 “原始 raw” 字符串:这字符串里面有\换行符号和 '号。
var s = r"In a raw string, even \n isn't special.";
true
and false
和
dart版本有更新,需要看下文档里面最新推荐写法。
var list = const [1, 2, 3]; //添加 const 关键字,可以定义 List 类型的编译时常量
Dart 推断 list
的类型为 List
List
常用方法: length, add, remove, indexOf, clear, insert, remoteAt
存放key,value的集合{"name":"张三"}
Map 是用来关联 keys 和 values 的对象。 keys 和 values 可以是任何类型的对象。
在一个 Map 对象中一个 key 只能出现一次。 但是 value 可以出现多次
var gifts = {
// Key: Value
'first': 'partridge',
'second': 'turtledoves',
'fifth': 'golden rings'
};
var nobleGases = {
2: 'helium',
10: 'neon',
18: 'argon',
};
var gifts = Map();
gifts['first'] = 'partridge';
gifts['second'] = 'turtledoves';
gifts['fifth'] = 'golden rings';
var nobleGases = Map();
nobleGases[2] = 'helium';
nobleGases[10] = 'neon';
nobleGases[18] = 'argon';
存放不重复元素的集合,类似与不重复的list。 Dart2.2 中才引入了 Set 字面量
var halogens = {'fluorine', 'chlorine', 'bromine', 'iodine', 'astatine'};
var names = {};
var names1 = {};
{}
是 Set 还是 Map ? Map 字面量语法同 Set 字面量语法非常相似。 因为先有的 Map 字母量语法,所以 {}
默认是 Map
类型。 如果忘记在 {}
上注释类型或赋值到一个未声明类型的变量上, 那么 Dart 会创建一个类型为 Map
的对象
在 Dart 中, Rune 用来表示字符串中的 UTF-32 编码字符。
Unicode 定义了一个全球的书写系统编码, 系统中使用的所有字母,数字和符号都对应唯一的数值编码。 由于 Dart 字符串是一系列 UTF-16 编码单元, 因此要在字符串中表示32位 Unicode 值需要特殊语法支持。
表示 Unicode 编码的常用方法是, \uXXXX
, 这里 XXXX 是一个4位的16进制数。 例如,心形符号 (♥) 是 \u2665
。 对于特殊的非 4 个数值的情况, 把编码值放到大括号中即可。 例如,emoji 的笑脸 (�) 是 \u{1f600}
。
String 类有一些属性可以获得 rune 数据。 属性 codeUnitAt
和 codeUnit
返回16位编码数据。 属性 runes
获取字符串中的 Rune
官方文档: 不知讲的什么。 一个 Symbol 对象表示 Dart 程序中声明的运算符或者标识符。 你也许永远都不需要使用 Symbol ,但要按名称引用标识符的 API 时, Symbol 就非常有用了。 因为代码压缩后会改变标识符的名称,但不会改变标识符的符号。 通过字面量 Symbol ,也就是标识符前面添加一个 #
号,来获取标识符的 Symbol 。
#radix
#bar
Symbol 字面量是编译时常量。
可以参篇文档 https://www.yiibai.com/dart/dart_programming_symbol.html