语法基础:
var bb=123;
final s=123;
const ss=123123;
“+” 、 " -"、 " *"、 “/” 、 ~/ (取整) 、 %取余
String str="hello";
print(str * 2); //hellohello
print(str[1]); //e
int e=5;
int f=8;
print("e+f = ${e+f}"); //e+f = 13
print("e= $e"); //e= 5
常用属性: length 、isEmpty 、isNotEmpty
常用方法 替换,索引,去分隔,截取,大小写转换等。
bool true false
创建List
var list=[1,2,3];
var list2=const[1,2,4,6];
var list3=new List();
列表-List
Runes,Symbols类型(用不到)
dynamic 相当于java中的泛型
== 、!= 、>、 <、 >=、 <=
需要注意的是:java中字符串判断内容是否相同使用equal ,判断地址相同才使用== ,而在Dart中使用== 表示内容判断
! 、&&、 ||
// ??= 运算符的含义,如果有初始值,则使用,没有值,则进行赋值
int r=10;
int v;
v ??=r;
print(v); // 10
v=90;
v ??=r;
print(v); //90
// ?? 条件表达式
String sss;
String str2="dart";
String ss=sss??str2;
print(ss); //dart
循环语句
for(var index=0;index
switch…case…语句:
比较类型:num,String,编译器常量
continue 跳转标签
方法也是对象,并且有具体类型Fucnction
返回值类型,参数类型都可以省略
箭头语法: => expr 是 {return expr;}缩写
方法都有返回值,如果没有指定,默认return null;
可选参数
可选命名参数{param1、param2、…}
可选位置参数[param1、param2、…]
void main(){
getPerson("OnexZgj");
getPerson("OnexZgj",age: 18);
getPerson("OnexZgj",age: 18,male: true);
getPerson2("Linsa");
getPerson2("Linsa",17);
getPerson2("Linsa",17,false);
}
//可选参数类型
getPerson(String name,{int age,bool male}){
print("name= $name,age=$age,male=$male");
}
getPerson2(String name,[int age,bool male]){
print("name= $name,age=$age,male=$male");
}
输出如下结果:
name= OnexZgj,age=null,male=null
name= OnexZgj,age=18,male=null
name= OnexZgj,age=18,male=true
name= Linsa,age=null,male=null
name= Linsa,age=17,male=null
name= Linsa,age=17,male=false
void main() {
//匿名方法的调用
Function fuc = (str){
print("the world is beautiful! $str");
};
fuc(123);
//方法对象使用
var method = printInfo();
method();
}
printInfo () {
print("Hello OnexZgj");
}
闭包是一个方法(对象)
闭包定义在其它方法的内部
闭包的作用,通过闭包,将方法内部的局部变量暴露出来。
void main() {
var method=a();
method();
method();
method();
}
a() {
var count = 0;
// printInfo() {
// print(count++);
// }
// return printInfo;
return (){
print(count++);
};
}
void main() {
int a = 10;
double b = 12.5;
print("hello world OnexZgj");
//num 常用函数
double c = 10.5;
print(c.floor()); //不大于本身的最大整数 10
print(c.ceil()); //大于本身的最小整数 11
print(c.abs()); // 绝对值 10.5
print(c.round()); //四舍五入 11
print(c.toInt()); // 10
print(c.toDouble()); // 10.5
//字符串常见方法
String str = "hello";
print(str * 2); //hellohello
print(str[1]); //e
//插值表达式
int e = 5;
int f = 8;
print("e+f = ${e + f}"); //e+f = 13
print("e= $e"); //e= 5
//布尔类型
bool F = true;
bool D = false;
print(F);
//创建数组
var list = [1, 2, 3];
var list2 = const [1, 2, 4, 6];
var list3 = new List();
list.forEach(print);
//创建Map
var map = {"name": "onexzgj", "sex": "man"};
print(map); //{name: onexzgj, sex: man}
//常量map
var map1 = const {"age ": 23, "isStudent": true};
print(map1); //{age : 23, isStudent: true}
//list转为map的操作
var map2 = list.asMap();
print(map2); //{0: 1, 1: 2, 2: 3}
// ??= 运算符的含义,如果有初始值,则使用,没有值,则进行赋值
int r=10;
int v;
v ??=r;
print(v); // 10
v=90;
v ??=r;
print(v); //90
// ?? 条件表达式
String sss;
String str2="dart";
String ss=sss??str2;
print(ss); //dart
for(var index=0;index