基本数据类型
//直接定义
var list =[];
//用泛型显示声明一个集合
List<int> list=[1,2,3,4,5];
list.add(7);
print(list[2]);
//创建一个固定长度的集合
List<String> lsit=List.filled(2,"");
//List当中的常见方法
List list = ['苹果','桃子','猴子'];
print(list.length); //输出长度
print(list.reversed); //反转数组
print(list.isEmpty); //判断是否为空
print(list.isEmpty); //判断是否为空
list.add("西瓜");//添加元素
//list.addAll(新数组);//合并数组
list.indexOf('西瓜');//查找某个元素
list.remove('西瓜');//删除某个元素 传入具体值
list.removeAt(2);//删除某个元素 传入下标
list.fillRange(0, 1,'aaa');//修改元素 前闭后开
list.insert(0, '你好');//插入元素,参数为下标和对象
list.join(',');//把List转为字符串,并且用,链接
//用泛型显示声明一个集合
Set<String> set={'dart','flutter'};
set.add("value");
print((set.length==3));
//如果用var声明一个空集合,那我们必须显示的声明泛型
var set = <int>{}; //或者Set set={};
//map直接赋值
Map<String,String> map={'dart':'flutter','map':'映射'};
//声明为空的map
var map={};
//先初始化再赋值
Map map1 = Map<String,String>();
map1['你好']='ligou';
//如果没有定义泛型的话可以这样定义 map1['好']=['我是1','我是2'];
print(map1['你好']);
//Map常用属性和方法
Map map = {'你好':'李哥'};
map.keys;//输出所有的key
map.values;//输出所有的values
map.isEmpty;//判断是否为空
//map.addAll(map名称)//拼接字典
map.containsKey('你好');//是否存在某个k
map.remove('你好');//删除某个k
map['哈哈']='呵呵';//添加元素
var a = 123;
if(a is int){
print('yes');
}
if(a>b){
print(a);
}else{
print(b);
}
//入门级别用法
for(int i = 0; i <5;i++){
print(i); //1 2 3 4 5
}
//集合套map
List list = [{'title':'董瑞龙'},{'title':'李狗'},{'title':'马狗'},];
for(int i = 0; i<list.length;i++ ){
print(list[i]['title']); //董瑞龙 李狗 马狗
}
//类似二维数组的嵌套
List list2 =[
{
'creat':'国内',
'news':[
{'title':'中国第一线'},
{'title':'中国第二线'}
]
},
{
'creat':'国外',
'news':[
{'title':'国外第一线'},
{'title':'国外第二线'}
]
}
];
for(int i = 0 ;i<list2.length;i++){
//print(list2[i]['creat']);
for(int j = 0;j<list2[i]["news"].length;j++){
print(list2[i]['news'][j]['title']); //中国第一线 中国第二线 国外第一线 国外第二线
}
}
List list = [1,2,3,4,5];
for(int a in list){
print(a); // 1 2 3 4 5
}
int a = 5;
while(a>0){
print(a); // 5 4 3 2 1
a--;
}
List<int> list = [1,2,3,4,5];
for(int a in list){
if(a<2){
continue;
}
if(a==4){
break;
}
print(a); // 2 3
}
List list=['你好','哈哈'];
list.forEach((value) {
print(value); //你好 哈哈
});
List list=[1,2];
var newlist=list.map((value) {
return value*2;
});
print(newlist.toList()); //[2,4]
//输出满足条件的语句
List list=[1,2,5,9,7];
var newlist=list.where((element) => element>2);
print(newlist.toList());//[5,9,7]
// 判断是否有满足条件的值,返回值为布尔类型
List list=[1,2,5,9,7];
var newlist=list.any((element) => element>2);
print(newlist); //true
// 集合内的元素是否都满足条件,返回值为布尔类型
List list=[1,2,5,9,7];
var newlist=list.any((element) => element>2);
print(newlist); //false
//这里定义了一个可选参数的函数,中括号当中的参数是可选的
void main(){
print(userInfo('董瑞龙',20,'女'));
}
String userInfo(String name,[var age,var sex]){
if(age!=null) {
return "年龄:$age ---性别:$sex";
}
return " 年龄:$age";
}
//这里直接在参数后面加上等于号赋值就可以创建一个带有默认参数的方法。
void main(){
print(userInfo('董瑞龙',20));
}
String userInfo(String name,[var age,var sex="女"]){
if(age!=null) {
return "年龄:$age ---性别:$sex";
}
return " 年龄:$age";
}
//创建了一个people类
class Peopel{
String name = '张三';
int age = 10 ;
String getInfo(){
return 'name=${this.name} -- age=${this.age}';
}
}
void main(){
Peopel p = new Peopel();
print(p.name);
print(p.getInfo());
}
class Animal{
void walk(){
print("正在走");
}
}
class Cat extends Animal{
void walk(){
super.walk();
print("cat is running");
}
}
abstract class Animal{
void walk(){
}
}
class Cat extends Animal{
void walk(){
super.walk();
print("cat is running");
}
}
//首先来看下这段代码,这段代码是会报The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.错误的
int a =10;
a=null;
//如果加入?符号就表示可以为空,这样就不会报错了
int ?a =10;
a=null;
String ?str="da";
str=null;
print(str!.length);
`**加粗样式**``