Dart支持以下数据类型:
常用数据类型:
Numbers(数值):int double
Strings (字符串):String
Booleans(布尔):bool
List(数组):在Dart中,数组是列表对象,所以大多数人只是称它们为列表
项目中用不到的数据类型 (用不到):
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非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:
一、字符串类型
1.字符串定义的几种方式
// 1.单引号
var str1='this is str1';
// 2.多引号
String str2="this is str2";
// 3. 三行单引号或者三个双引号,可以写多行字符串
String str3='''this is str3
this is str3
this is str3
''';
print(str1);
print(str2);
print(str3);
2.字符串的拼接
String str1='你好';
String str2='Dart';
print("$str1 $str2");
print(str1 + str2);
print(str1 +" "+ str2);
二、数值类型
1.int 必须是整型
int a = 123;
a = 12.3;//报错
a = 124;
2.double 既可以是整型,也可以是浮点型
double b = 23.5;
b=123;
print(b); //123.0 ,自动转成double类型
3.运算符 + - * / %
var c = a+b;
三、布尔类型 bool类型
1.bool
bool flag = true;
2、条件判断语句
var a=123;
var b='123';
if(a==b){
print('a=b');
}else{
print('a!=b');
} // 打印出a!=b,dart里不会对类型进行判断
四、List (数组/集合)
//1、第一种定义List的方式
var l1=["张三",20,true];
print(l1); //[张三, 20, true]
print(l1.length); //3
//2、第二种定义List的方式 指定类型
var l2=<String>["张三","李四"];
print(l2);
var l3 = <int>[12, 30];
print(l3);
//3、第三种定义List的方式 增加数据 ,通过[]创建的集合它的容量可以变化
var l4 = [];
print(l4);
print(l4.length);
l4.add("张三");
l4.add("李四");
l4.add(20);
print(l4);
print(l4.length);
var l5 = ["张三", 20, true];
l5.add("李四");
l5.add("zhaosi");
print(l5);
//4、第四种定义List的方式
//var l6=new List(); //在新版本的dart里面没法使用这个方法了
//通过List.filled创建的集合长度是固定
var l6=List.filled(2, ""); //创建一个固定长度的集合
print(l6);
print(l6[0]);
// l6.length=0; //修改集合的长度 报错
// var l7=<String>["张三","李四"];
// print(l7.length); //2
// l7.length=0; //可以改变的
// print(l7); //[]
五、Maps类型
//第一种定义 Maps的方式
var person={
"name":"张三",
"age":20,
"work":["程序员","送外卖"]
};
print(person);
print(person["name"]);
//第二种定义 Maps的方式
var p=new Map();
p["name"]="李四";
p["age"]=22;
p["work"]=["程序员","送外卖"];
print(p);
print(p["age"]);
六、Dart类型的判断
is 关键词来判断类型
var str='1234';
if (str is String){
print('是string类型');
}else if(str is int){
print('int');
}
七、类型的转换
1.Number与String类型之间的转换
Number类型转成String类型 toString()
var myNum=12;
var str=myNum.toString();
print(str is String);
String类型转成Number类型 parse()
String str='123';
var myNum=int.parse(str);
print(myNum is int);
String str1 = '123.1';
var myNum1=double.parse(str1);
print(myNum1 is double);
2.其他类型和booleans类型的转换
isEmpty判断字符串是否为空
var str='';
if(str.isEmpty){
print('str空');
}else{
print('str不为空');
}
判断NaN类型
if (myNum.isNaN) {
print('NaN');
}