导航
常用数据类型:
字符串类型- String
字符串定义的几种方式:
1. 使用单引号
var str1 = 'this is str1';
String str2 = 'this is str2';
print(str1);
print(str2);
2. 使用双引号
var str3 = "this is str3";
String str4 = "this is str4";
print(str3);
print(str4);
3. 使用三个引号(可是三个单引号或者双引号,但前后保持一致)
String str5 = '''this is str5
this is str5
this is str5''';
String str6 = """
this is str6
this is str6
this is str6
""";
print(str5);
print(str6);
/*
打印结果:
this is str5
this is str5
this is str5
this is str6
this is str6
this is str6
*/
结论:
- 使用单、双引号定义字符串是一样的。
- 使用三引号定义的字符串可以定义多行的字符串,保留字符串换行格式(类似 js 中的模板字符串)
字符串的拼接
1. 使用“+
”进行字符串简单拼接
String str1 = '您好';
String str2 = 'Dart';
print(str1 + str2);
print(str1 + ' ' + str2);
2. 使用“$
”进行字符串与变量拼接
String str1 = '您好';
String str2 = 'Dart';
print("$str1 $str2");
注意: 如果要在字符串中执行表达式,需要使用${}
数值类型 - int / double
整型 int
int a = 123;
a = 45;
a = 3.1; // 报错
print(a);
浮点型 double
double b=23.5;
b=24;
print(b); // 24.0
注意:
- 整型赋值必须是整型,而浮点型赋值既可以是整型,也可是浮点型。
运算符
+ - * / %
var c=a+b;
print(c);
布尔类型 - bool
值true
/false
bool flag1 = true;
print(flag1);
bool flag2 = false;
print(flag2);
条件判断语句
if-else
语句,跟 javascript 用法相同
var flag = true;
if (flag) {
print('真');
} else {
print('假');
}
var a=123;
var b='123';
if (a==b) {
print('a=b');
} else {
print('a!=b');
}
数组/集合 - List
在Dart中,数组是列表对象,所以大多数人只是称它们为列表。相当于 javascript 中的 Array 类型。
第一种定义List的方式
var l1 = ['aaa','bbbb','cccc'];
print(l1);
print(l1.length); // 长度 3
print(l1[1]); // 取值 bbbb
第二种定义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); // 报错
print(l3);
字典类型 - Maps
通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次。相当于 javasrcript 中的 Object 对象类型。
第一种定义 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
关键词来判断类型
var str = '1234';
// 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