Dart语言:Function
Posted 考拉的日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart语言:Function相关的知识,希望对你有一定的参考价值。
函数
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=hello
printPerson2("张三"); // 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的主要内容,如果未能解决你的问题,请参考以下文章
我的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(代码片段