main(){
var pi=3.14;//变量
//dynamic a;//静态类型
int a=42;//整数
double b=3.15;//浮点数
bool c=true;//布尔数
String e='答案';
pi+=106%50;
const f=4.10;//不改变的值,编译时已知
final String g='JJ';//不改变的值,不能被重新分配
String? m=null;//创建空值
var h=m??'none';//判断m是否为空,为空则返回none
print(h?.length);//嵌套表达式?.length保护访问对象
/*多行注释:4中控制流 条件句,循环,中断*/
var j="fox";
//if判断开始
if (j=='dog'||j=='cat'){
print("不是dog或cat");
}else if(j=='fox'){
print('是fox');
}else{
print('是其它');
}
//if判断结束
//while循环开始
var i=1;
while(i<5){
//print(i);
i++;
}
//while循环结束
//do while循环开始
var p=1;
do{
print(p);
p++;
}while(i<5);
//do while循环结束
//继续和中断 开始 continue 和 break 关键字
i=1;
do{
print(i);
if(i>5){
//continue;
break;
}
++i;//i++先做别的事,再自己加1,++i先自己加1,再做别的事情, i++ 不能作为左值,而++i 可以
}while(i<10);
//继续和中断 结束
//for循环开始
var sum=0;
for(var i=1;i<10;i++){
sum+=i;
}
print("总和$sum");
//for循环结束
//集合开始 List 和 Map 的collections
List mylist=[0,'a',2,99];
print(mylist[1]);//读取列表第二个元素
mylist.add(100);
mylist.remove('a');
print(mylist[1]);//增减后再次读取列表第二个元素
//循环读取列表
for(final mylist in mylist){
print(mylist);
}
//集合结束
//配对值Map列表开始,创建Map
var gifts = {
// 键: 值
'first': 'partridge',
'second': 'turtledoves',
'third': 'golden rings'
};
print(gifts);//打印Map
//配对值列表结束
//第二种地图配对值开始
Map<String, int> xwMap = {
'cake': 500,
'donuts': 150,
'cookies': 100,
};
print(xwMap);//打印Map
//查找Map值
final xwa = xwMap['donuts'];
print(xwa); // 150
//添加新元素
xwMap['cookies']=1989;
print(xwMap);
//第二章地图配对值结束
/*Functions开始函数*/
//定义函数 判断给定字符是否为香蕉
bool myfun(String myarg1){
return myarg1=='banana';
}
//使用函数
var myarg2='apple';
print(myfun(myarg2));
/*Functions结束函数*/
//嵌套函数和可选参数开始
String fullname(String first,String last,[String?title]){
if(title==null){
return '$first $last';
}else{
return '$title,$first $last';
}
}
//调用参数
print(fullname('xiong','wei'));
//嵌套函数和可选参数结束
//多个参数,可选,开始
bool withinTolerance({required int value, int min=0, int max=10}) {
return min <= value && value <= max;
}
//调用函数
print(withinTolerance(min:1, max:5, value:11)); // false
//多个参数,可选,结束
//匿名函数开始。1、没有参数和返回值
final onPressed = () {
print('button pressed');
};
//匿名函数结束
//匿名函数重构开始 refactored
final refactoredFun = () => print('refactored');
//匿名函数重构结束
}