数据类型及其操作(0.5小时)
Dart常用数据类型如下:
- numbers
- strings
- booleans
- lists (也被称之为 arrays)
- set
- maps
Number (数值)
Dart
支持两种类型的数字,int
和 double
,int
用于整数 ,而 double
用于浮点数。
// 整数类型int
int point = 100;
print(point); //100
// 浮点类型double
double precent = 0.78;
print(precent); //0.78
数值类型变量支持转换为字符串类型
// int -> String
String oneAsString = 1.toString();
print(oneAsString); // 1
// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
print(piAsString); // 3.14
整数类型支持传统的位移操作符,(<<, >>), AND (&), 和 OR (|) 。
print((5 << 1)); // 10: 0101 << 1 == 1010
print((5 >> 1)); // 2: 0101 >> 1 == 0010
print((5 | 3)); // 7: 0101 | 0011 == 0111
Strings (字符串)
Dart
字符串是 UTF-16 编码的字符序列。 可以使用单引号或者双引号来创建字符串:
var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";
字符串支持适用 ‘+’ 进行拼接
String str1 = 'Hello ';
String str2 = 'World';
print(str1+str2); // Hello Word
字符串可以转换成数值型
// String -> int
int one = int.parse('1');
print(one); // 1
// String -> double
double onePointOne = double.parse('1.1');
print(onePointOne); // 1.1
Booleans (布尔值)
Dart
提供了两个布尔值:true
和 false
,Dart是类型安全的,if(非booleanvalue)
和 assert(非booleanvalue)
都会认为非法而抛出异常。
if (1) { //抛出类型异常
// Dart并不会打印,而Java会
print('go inside');
}
Lists (列表)
List
定义的方法:
// List定义
// 1.使用类型推导定义
var letters = ['a', 'b', 'c', 'd'];
print(letters); //[a, b, c, d]
// 2.明确指定类型
List<int> num = [1, 2, 3, 4];
print(num); //[1, 2, 3, 4]
List
常用操作如下:
letters.add('b'); // 追加元素'b', [a, b, c, d, b]
letters.remove('b'); // 删除元素'b', [a, c, d, b],只删除检索到的第一个‘b’
letters.removeAt(2); // 删除index为2的元素 [a, c, d, b]
print(letters.length); //4 List中元素个数
Set
Set
定义如下:
// Set定义
// 1.使用类型推导定义
var letters = {'a', 'b', 'c', 'd'};
print(letters); // {a, b, c, d}
// 2.明确指定类型
Set<int> num = {1, 2, 3, 4};
print(num); //{1, 2, 3, 4}
Set
和 List
最大的两个不同就是:Set
是无序的,并且元素是不重复的,这个和java
是一致的。
Set
常用操作如下:
letters.add('e'); //增加元素 {a, b, c, d, e}
letters.remove('c'); //删除元素 {a, b, d, e}
Maps
映射表,使用键值对的形式存储数据,定义如下:
// Map的定义
// 使用类型推导定义
var map1 = {'name': '小明', 'class': "四班"};
print(map1); // {name: 小明, class: 四班}
// 2.明确指定类型
Map<String, Object> map2 = {'city': '广州', 'country': '中国'};
print(map2); //{city: 广州, country: 中国}
Maps
常用操作如下:
// 1.根据key获取value
print(map2['city']); // 广州
// 2.获取所有的entries
print(map2.entries); // (MapEntry(city: 广州), MapEntry(country: 中国))
// 3.获取所有的keys
print(map2.keys); // (city, country)
// 4.获取所有的values
print(map2.values); // (广州, 中国)
// 5.判断是否包含某个key或者value
print(map2.containsKey('city')); // true
// 6.根据key删除元素
map2.remove('city');
print(map2); // {country: 中国}
参考
http://dart.goodev.org/guides/language/language-tour
https://book.flutterchina.club/chapter1/dart.html