失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Dart入门—函数与运算符

Dart入门—函数与运算符

时间:2019-04-06 05:05:47

相关推荐

Dart入门—函数与运算符

Dart入门—函数与运算符

函数

基本语法

void main(){printNameA("XiaoMing");printNameB("XiaoMing");printNameC("XiaoMing");}// 规范语法void printNameA(String name){print("My name is $name.");}// 通俗语法printNameB(name){print("My name is $name.");}// 速写语法void printNameC(String name) => print("My name is $name.");

主函数

main() 函数,作为程序的入口,返回值是void,还有一个可选参数

void main(List<String> arguments) {print(arguments);print(arguments.length);}

可选参数

命名参数

void main() {printName(name:"XiaoMing", age:14);}// 用 { } 把参数包装起来,就能标识命名参数// 用 : 指定默认值void printName({String name, int age, String sex:"female"}){print("My name is $name, $age years old, gender $sex.");}

位置参数

main(List<String> arguments) {print(say("Bob", "Howdy"));print(say("Bob", "Howdy", "smoke signal"));}// 用 [ ] 把参数包装起来,就能标识位置参数// 用 = 指定默认值String say(String from, String msg, [String device, String mood = "good"]){String result = "$from says $msg.";if (device != null) {result = "$result with a $device.";}if (mood != null) {result = '$result (in a $mood mood)';}return result;}

高阶函数

将函数作为参数传递给另一个函数

void main() {List list = [1, 2, 3];list.forEach(printElement);}printElement(element){print(element);}

将一个函数分配给一个变量

void main() {var loudify = (msg) => "!!! ${msg.toUpperCase()} !!!";print(loudify("hello"));}

闭包

dart的闭包就是函数对象,其实跟JavaScript的闭包函数差不多,理论请参考JavaScript的闭包函数

void main() {// 创建一个函数add2,返回加2Function add2 = makeAdder(2);// 创建一个函数add4,返回加4Function add4 = makeAdder(4);// 2 + 3 = 5print(add2(3));// 4 + 3 = 7print(add4(3));}// 返回一个函数对象,功能是返回累加的数字Function makeAdder(int addBy){return (int i) => addBy + i;}

函数判断

void main() {var x;// 比较高阶函数x = foo;print(foo == x);// 比较静态方法x = SomeClass.bar;print(SomeClass.bar == x);// 比较实例方法var v = new SomeClass();var w = new SomeClass();var y = w;x = w.baz;print(y.baz == x);print(v.baz != w.baz);}// 一个高阶函数foo(){}class SomeClass{// 一个静态方法static void bar(){}// 一个实例方法void baz(){}}

运算符

dart定义的运算符如下所示,前排的优先级高于后排的,例如”%“ > ”==“ > ”&&“,但括号能改变优先级

算术运算符

相等与关系运算符

类型运算符

用as、is和is!可以很方便的在执行时检查类型

用 obj is T 这个语法可以判断obj是否实现了T

if (emp is Person) {emp.firstName = 'Bob';}

也可以使用as运算符检查

(emp as Person).firstName = 'Bob';

赋值运算符

赋值用 = 运算符,如果在前面加上其他运算符比如 += ,就可以组成复合赋值运算符

= –= /= %= >>= ^=+= *= ~/= <<= &= |=

复合赋值运算符的语法说明是 a op= b 等于 a = a op b

var a = 2;a *= 3;assert(a == 6);

逻辑运算符

按位和位移运算符

其它运算符

如果觉得《Dart入门—函数与运算符》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。