Dart语言:Function

Posted 考拉的日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart语言:Function相关的知识,希望对你有一定的参考价值。

函数

函数特性  函数也是对象并且具有类型 Function
返回值类型 参数类型都可省略
箭头函数  => expr 是{return expr;}缩写,只适用于一个表达式
函数都有返回值 如果没有指定 默认return null最后一句
void main(List args){ //方法定义 print(args); // []  print(add(12,2.0)); // 14.0  printPerson('jack',20); // name=jack,age=20 print(getPerson('lucy',32)); // name=lucy,age=32}
num add(num a,num b){ return a + b;}/** * 返回类型 方法名(arg1,arg2){ * 方法体... * return 返回值 * } */String printPerson(String name, int age){ print("name=$name,age=$age");}getPerson(name,age) => "name=$name,age=$age";


函数参数

void main(){printPerson("张三"); // name=张三,age=null,gender=null// 根据命名的方式传参数printPerson("张三",age:12,gender:'hello');// name=张三,age=12,gender=helloprintPerson2("张三"); // name=张三,age=null,gender=null// 根据位置的方式传参数printPerson2("张三",18,'你好');// name=张三,age=18,gender=你好}//可选参数// {int age,String gender} 可选参数 传参根据命名printPerson(String name,{int age,String gender}){   print('name=$name,age=$age,gender=$gender'); // $符 插值表达式}// [int age,String gender] 可选参数 传参根据位置printPerson2(String name,[int age,String gender]){   print('name=$name,age=$age,gender=$gender');}// 默认参数,为参数赋初始值printPerson3(String name,{int age = 30,String gender = 'Female'}){ print('name=$name,age=$age,gender=$gender');}


函数对象

void main() { Function fun = printHello; fun(); var list = [1, 2, 3]; list.forEach(print); // 方法可以作为一个参数传递 var list2 = ['hehe', 'yaya', 'a']; print(listTimes(list2, times)); // 方法作为参数传递}
printHello() { print('Hello');}
List listTimes(List list, String f(str)) { for (var i = 0; i < list.length; i++) { list[i] = f(list[i]); } return list;}
String times(str) { return str * 3;}


匿名函数

  可赋值给变量  通过变量进行调用
  可在其他方法中直接调用或传递给其他方法
void main(){ var fun = (){ print('Hello'); // Hello }; fun();
((){ print('object'); // object })(); // 立即函数闭包
var list = ['a','b','c','d']; print(listTimes(list, (str){return str * 2;})); // [aa, bb, cc, dd]}

List listTimes(List list, String f(str)) { for (var i = 0; i < list.length; i++) { list[i] = f(list[i]); } return list;}


闭包

闭包是一个方法(对象)

闭包定义在其他方法内部

闭包能够访问外部方法内的局部变量,并维持状态

void main() { var fun = a(); fun();//1 fun();//2 fun();//3}
a(){ int count = 0; countNum(){ count++; print(count); } return countNum;}




以上是关于Dart语言:Function的主要内容,如果未能解决你的问题,请参考以下文章

Dart入门语言特性库异步编程

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段

Flutter入门Dart语言:初步了解内建类型

Dart 语言在 VS 代码中不能执行