dart语言学习1

1.Final and const
如果你以后不打算修改一个变量,使用 final 或者 const。 一个 final 变量只能赋值一次;一个 const 变量是编译时常量。 (Const 变量同时也是 final 变量。) 顶级的 final 变量或者类中的 final 变量在 第一次使用的时候初始化。
实例变量可以为 final 但是不能是 const 。
const 变量为编译时常量。 如果 const 变量在类中,请定义为 static const。 可以直接定义 const 和其值,也 可以定义一个 const 变量使用其他 const 变量的值来初始化其值。

2.下面是字符串和数字之间转换的方式:

// String -> int
var one = int.parse(‘1’);
assert(one == 1);

// String -> double
var onePointOne = double.parse(‘1.1’);
assert(onePointOne == 1.1);

// int -> String
String oneAsString = 1.toString();
assert(oneAsString == ‘1’);

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == ‘3.14’);

3.使用三个单引号或者双引号也可以 创建多行字符串对象。

4.Lists(列表)
var list = [1, 2, 3];

list[1] = 1;

在 list 字面量之前添加 const 关键字,可以 定义一个不变的 list 对象(编译时常量):

var constantList = const [1, 2, 3];

5.Maps
var gifts = {
// Keys Values
‘first’ : ‘partridge’,
‘second’: ‘turtledoves’,
‘fifth’ : ‘golden rings’
};

var nobleGases = {
// Keys Values
2 : ‘helium’,
10: ‘neon’,
18: ‘argon’,
};
使用 Map 构造函数也可以实现同样的功能:

var gifts = new Map();
gifts[‘first’] = ‘partridge’;
gifts[‘second’] = ‘turtledoves’;
gifts[‘fifth’] = ‘golden rings’;

var nobleGases = new Map();
nobleGases[2] = ‘helium’;
nobleGases[10] = ‘neon’;
nobleGases[18] = ‘argon’;

var gifts = {‘first’: ‘partridge’};
gifts[‘fourth’] = ‘calling birds’; // Add a key-value pair

var gifts = {‘first’: ‘partridge’};
如果所查找的键不存在,则返回 null:

var gifts = {‘first’: ‘partridge’};
使用 .length 来获取 map 中键值对的数目:

var gifts = {‘first’: ‘partridge’};
gifts[‘fourth’] = ‘calling birds’;
同样使用 const 可以创建一个 编译时常量的 map:

final constantMap = const {
2: ‘helium’,
10: ‘neon’,
18: ‘argon’,
};

6.Runes
在 Dart 中,runes 代表字符串的 UTF-32 code points。

Unicode 为每一个字符、标点符号、表情符号等都定义了 一个唯一的数值。 由于 Dart 字符串是 UTF-16 code units 字符序列, 所以在字符串中表达 32-bit Unicode 值就需要 新的语法了。

通常使用 \uXXXX 的方式来表示 Unicode code point, 这里的 XXXX 是4个 16 进制的数。 例如,心形符号 (♥) 是 \u2665。 对于非 4 个数值的情况, 把编码值放到大括号中即可。 例如,笑脸 emoji (?) 是 \u{1f600}。

String 类 有一些属性可以提取 rune 信息。 codeUnitAt 和 codeUnit 属性返回 16-bit code units。 使用 runes 属性来获取字符串的 runes 信息。

var clapping = ‘\u{1f44f}’;
print(clapping);
print(clapping.codeUnits);
print(clapping.runes.toList());
Runes input = new Runes(
‘\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}’);
print(new String.fromCharCodes(input));
}
?
[55357, 56399]
[128079]
♥ ? ? ? ? ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值