程序的入口
在dart程序中, 必须定义一个main方法作为程序的入口, 这点和Java一样
方式1
main(){
}
方式2
void main(){ //没有返回值
}
常量与变量
不用预先定义变量类型, 会自动进行类型推导
- const: 常量
const a = 1;
- var: 变量
var a = 1;
- final: 只能赋值一次, 声明的时候可以不赋值
final a = 1;
数据类型
- 数值类型
int 整型
double 浮点型
main(){
int a =1;
double b = 2;
print(a+b); //3.0
}
- 字符串
main(){
//定义字符串
String s1 = 'hello';
String s2 = ' dart';
//字符串拼接
String s3 = s1 + s2;
print("$s1 $s2"); //hello dart
print(s3); //hello dart
//模版字符串
String s4 = '''
hello
Dart
''';
print(s4);
}
- 布尔类型
main(){
bool a = true;
print(a);
}
- List集合类型
- 定义list
main(){
//方式1
List l1 = [1, 2, 3];
print(l1); //[1, 2, 3]
//创建不可变list
var l2 = const[1, 2, 3];
//方式2: 构造创建
List l3 = new List();
l3.add('zhangsan');
l3.add('lisi');
print(l3); //[zhangsan, lisi]
}
List里面常用的属性和方法:
常用属性:
length 长度
reversed 翻转
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
add 增加
addAll 拼接数组
indexOf 查找 传入具体值
remove 删除 传入具体值
removeAt 删除 传入索引值
fillRange 修改
insert(index,value); 指定位置插入
insertAll(index,list) 指定位置插入List
toList() 其他类型转换成List
join() List转换成字符串
split() 字符串转化成List
forEach
map
where
any
every
- Set
跟List基本一致, 区别就是不能重复插入的值没有顺序 - Map类型
- 定义Map
main(){
//方式1
Map m1 = {
'name': 'zhangsan',
'age': 11
};
//不可变Map
Map m2 = const{
'name': 'zhangsan',
'age': 11
};
//方式2
Map m3 = new Map();
m3['name'] = 'lisi';
m3['age'] = 12;
}
常用属性:
keys 获取所有的key值
values 获取所有的value值
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
forEach
map
where
any
every
- dynamic
可变类型, 类似于Java中的泛型
dynimic a = 1;
a = "hello"; //类型是可以改变的
//创建一个可以添加不同类型的list集合
var list = new List<dynamic>();
list.add(1);
list.add('hello');
- enum
枚举
enum Season{
spring,
summer,
autumn,
winter
}
- 类型判断
Dart通过is关键词来判断
main(){
int a = 1;
if(a is int){
print('is int');
}
}
- 类型转换
main(){
//字符串转整数
String a = "1";
int b = int.parse(a);
print(b);
//整数转字符串
int c = 2;
String d = c.toString();
print(d);
}
网友评论