函数
Dart 是一个面向对象语言,所以函数也是对象,函数属于Function对象。
函数可以像参数一样传递给其他函数,这样便于做回调处理。
如下示例为判断两字符是否相等:
//判断两个字符是否相等
bool equal(String str1,String str2){
return str1 == str2;
}
可选参数
将参数使用中括号[]括起来,用来表明是可选位置参数。例如,总共传入了三个参数,其中name和sex是必需传入的参数,from参数可以不传,代码如下:
//获取用户信息
String getUserInfo(String name,String sex,[String from]){
var info = `$name的性别是$sex`;
if(from!=null){
info = '$info来自 $from';
}
return info;
}
void test(){
print(getUserInfo('小王','男'));
}
调用上面的test方法可以输出“小王的性别是男”,但是不会输出来自哪里。
参数默认值
如果参数制定了默认值,当不传入值时,函数里会使用这个默认值。如果传入了值,则用传入的值取代默认值。通常参数默认值为null。改造上面的getUserInfo方法,给from赋上默认值,如下:
//获取用户信息
String getUserInfo(String name,String sex,[String from = '中国']){
var info = `$name的性别是$sex`;
if(from!=null){
info = '$info来自 $from';
}
return info;
}
void test(){
print(getUserInfo('小王','男'));
}
调用上面的test方法可以输出“小王的性别是男来自中国”
main函数
Flutter应用程序必须要有一个main函数,和其他语言一样作为程序的入口函数。下面的代码表示应用要启动MyApp类:
void main()=>runApp(MyApp());
函数返回值
在Dart语言中,函数的返回值有如下特点
- 所有函数都会有返回值。
- 如果没有指定函数返回值,则默认的返回值是
null。 - 没有返回值的函数,系统会在最后添加隐式的
return语局。
运算符
Dart支持的运算符基本和Java运算符一致,就不一一举例说明了,下面是完整操作符表
完整操作符表
| 描述 | 运算符 |
|---|---|
| 一元后缀 | expr++、expr--、()、.、?. |
| 一元前缀 | -expr、!expr、~expr、++expr、--expr |
| 乘法类型 | *、/、%、~/ |
| 加法类型 | +、- |
| 位移运算 | >>、<< |
| 并且位运算 | & |
| 异或位运算 | ^ |
| 或位运算 | | |
| 关系和类型测试 | >=、<=、>、<、as、is、is! |
| 等式 | ==、!= |
| 逻辑并且 | && |
| 逻辑或 | || |
| 条件 | expr1 ?、expr2 : expr3 |
| 赋值 | =、*=、/=、~-、%=、+=、-=、<<=、>>=、&=、^=、/=、??= |
以前没见过的运算符
??=运算符
仅在变量为null时赋值,使用??=运算符,如下所示:
//赋值给a
a = value;
//如果b为空,则将值分配给b;否则,b保持不变。
b ??=value;