目录
Dart数据类型概览
常用数据类型:
Numbers(数值):
int
double
Strings(字符串)
String
Booleans(布尔)
bool
List(数组)
在Dart中,数组是列表对象,所以大多数人只是称它们为列表。
Maps(字典)
通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个键只出现一次, 而一个值则可以出现多次。
不常用数据类型:
Runes
Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。
main() {
var clapping = '\u{1f44f}';
print(clapping);//👏
print(clapping.codeUnits);//[55357, 56399]
print(clapping.runes.toList());//[128079]
Runes input = new Runes(
'\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}');
print(new String.fromCharCodes(input));//♥ 😅 😎 👻 🖖 👍
}
Symbols
一个Symbol对象代表Dart程序中声明的操作符或者标识符。也许不会用到Symbol,但是该功能对于通过名字来引用标识符的情况 是非常有价值的,特别是混淆后的代码,标识符的名字被混淆了,但是Symbol的名字不会改变。使用Symbol字面量来获取标识符的symbol对象,也就是在标识符前面添加一个 # 符号。
var sym1 = Symbol('name');
print(sym1); // Symbol("name")
var sym2 = #titan;
print(sym2); // Symbol("titan")
字符串类型
字符串定义
Dart字符串有三种定义方式,分别是单引号、双引号和三引号,区别是单引号和双引号定义的是单行字符串,三引号可以定义多行字符串。
var str1='this is str1';
var str2="this is str2";
String str1='''this is str1
this is str1
this is str1
''';
字符串拼接
用“+”拼接
String str1='你好';
String str2='Dart';
print(str1 + str2);//你好Dart
模板字符串
String str1='你好';
String str2='Dart';
print("前面内容$str1中间内容$str2后面内容");//前面内容你好中间内容Dart后面内容
数值类型
int必须是整型
int a=123;
a=45;
print(a);//45
double 既可以是整型,也可是浮点型,当赋值为整型时,自动转化为浮点型。
double b=23.5;
b=24;
print(b);//24.0
print(b is double); //true
运算符:同其他语言一样,支持+ - * / %
布尔类型
关键字bool,仅有两个值true/false
var flag=true;
if(flag){
print('真');//真
}else{
print('假');
}
List(数组/集合)
第一种定义List的方式
var l1=['aaa','bbbb','cccc'];
print(l1);
print(l1.length);
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);//["张三"]
Map(字典)
Map有点类似于js中的json数据类型,但是要比json弱
第一种定义Map的方式,key必须加引号,json中可加可不加
var person={
"name":"张三",
"age":20,
"work":["程序员","送外卖"]
};
取值时,不能像json一样直接person.name,需要用中括号取值:
print(person["name"]);//张三
print(person["age"]);//20
print(person["work"]);//["程序员","送外卖"]
第二种定义Map的方式
var p=new Map();
p["name"]="李四";
p["age"]=22;
p["work"]=["程序员","送外卖"];
print(p);//{name: 李四, age: 22, work: [程序员, 送外卖]}
print(p["age"]);//22
Dart判断数据类型
is 关键词用来判断类型
var str=123;
if(str is String){
print('是string类型');
}else if(str is int){
print('int');//int
}else{
print('其他类型');
}