Dart中支持以下数据类型:
常用数据类型:
Numbers(数值):
- int
- double
例程:
void main() { // int 必须是整型 int a = 123; a = 45; print(a); // double 既可以是整型 也可是浮点型 double b = 23.5; b = 24; print(b); // 运算符 + - * / % var c = a + b; print(c); }
Strings(字符串)
- String
例程:
void main() { //1、字符串定义的几种方式 // var str1 = 'this is str1'; // var str2 = "this is str2"; // print(str1); // print(str2); // String str1 = 'this is str1'; // String str2 = "this is str2"; // print(str1); // print(str2); // String str1 = '''this is str1 // this is str1 // this is str1 // '''; // print(str1); // String str1 = """ // this is str1 // this is str1 // this is str1 // """; // print(str1); //2、字符串的拼接 String str1 = '你好'; String str2 = 'Dart'; // print("$str1 $str2"); print(str1 + str2); print(str1 + " " + str2); }
Booleans(布尔)
- bool
例程:
void main() { // bool // bool flag1 = true; // print(flag1); // bool flag2 = false; // print(flag2); // 条件判断语句 var flag = true; if(flag){ print('真'); }else{ print('假'); } // var a = 123; // var b = '123'; // if(a==b){ // print('a=b'); // }else{ // print('a!=b'); // } var a = 123; var b = 123; if(a==b){ print('a=b'); }else{ print('a!=b'); } }
List(数组):
- 在Dart中,数组是列表对象,所以大多数人只是称它们为列表
例程:
void main(){ // 第一种定义List的方式 /* var l1 = ['aaa','bbbb','cccc']; print(l1); print(l1.length); print(l1[1]); */ // 第二种定义List的方式 /* var l2 = new List(); l2.add('张三'); l2.add('李四'); l2.add('王五'); print(l2); print(l2[2]); */ // 定义List时,指定类型 var l3 = new List<String>(); l3.add('张三'); // l3.add(123); // 报错:123是int类型,不是预定义的String类型 print(l3); }
Maps(字典):
- 通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次
例程:
void main(){ //第一种定义 Maps 的方式 /* var person = { "name":"张三", "age":20, "work":["程序员","送外卖"] }; print(person); print(person["name"]); print(person["age"]); print(person["work"]); */ //第二种定义 Maps 的方式 var p = new Map(); p["name"] = "李四"; p["age"] = 22; p["work"] = ["程序员", "送外卖"]; print(p); print(p["age"]); }
类型判断 is
void main(){ /* var str='1234'; if(str is String){ print('是string类型'); } else if(str is int){ print('int'); } else{ print('其他类型'); } */ var str = 123; if (str is String){ print('是string类型'); } else if (str is int){ print('int'); } else{ print('其他类型'); } }
项目中用不到的数据类型 (用不到):
Runes
- Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。
main(){ 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)); }
Symbols
- Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:
- 在 Dart 中符号用 # 开头来表示,入门阶段不需要了解这东西,可能永远也用不上。
http://dart.goodev.org/guides/libraries/library-tour#dartmirrors---reflection