Dart是一个面向对象的语言,因此函数也是对象,函数属于Function对象,函数能够像参数同样传递给其余函数,这样便于作回调处理;html
一.指定返回值的函数函数
//判断两个字符串是否相等 bool isEqual(String name1,String name2){ return name1 == name2; } print(isEqual('张三','李四')); //打印结果:false
上面的示例咱们指定了参数的类型,在不肯定参数的类型的状况下,咱们的参数能够用dynamic、object或var来接收参数post
//判断两个字符串是否相等 bool isEqual(dynamic name1,var name2){ return name1 == name2; } print(isEqual('张三','李四')); //打印结果:false
二.不指定返回值的函数学习
//判断两个字符串是否相等 isEqual(String name1,String name2){ return name1 == name2; } print(isEqual('张三','李四')); //打印结果:false //打印文本 isEqual(dynamic name1,object name2){ var result = '$name1和$name2的名字是否相同'; if(name1 == name2){ result = '$name1和$name2的名字不一样'; }else{ result = '$name1和$name2的名字相同'; } return result; } print(isEqual('张三','李四')); //打印结果:张三和李四的名字不一样
三.若是函数里面只有一个表达式,则能够这样简写url
void printSth(String content) => print('hello word');
四.可选参数spa
一个函数能够有两种参数:必须的和可选的,必须参数要放在前面,可选参数(便可以不传)要放在后面;code
可选参数又分为两种:位置参数和命名参数,两种参数均可以设置默认值,若是没有设置默认值,则默认值为null;htm
1.可选的命名参数对象
定义一个函数,使用{String param1,String param2,...........}指定命名参数,在调用方法的时候,须要指出你要给哪一个参数进行传值,如:blog
(1)无默认值例子:
void printSth(String param1,{String param2,String param3}) => print(param1+'让'+param2+'打'+param3); printSth('张三',param2:'李四',param3:'王五'); //打印结果:张三让李四打王五 void printSth(String param1,{String param2,String param3}) => print(param1+'让'+param2+'打'+param3); printSth('张三',param2:'李四'); //打印结果:张三让李四打null 这里咱们能够看到必须参数和可选的命名参数的区别,必须参数直接传值,可选的命名参数须要指定参数名进行传值,若是没有传值,则默认值为null;
(2)有默认值的例子
void printSth(String param1,{String param2,String param3:'王五'}) => print(param1+'让'+param2+'打'+param3); printSth('张三',param2:'李四'); //打印结果:张三让李四打王五
2.可选的位置参数
与可选的命名参数不一样,可选的位置参数须要经过[]将参数包裹起来,就能标识成位置参数
(1)没有默认值的例子
void printSth(String param1,[String param2,String param3]) => print(param1+'让'+param2+'打'+param3); printSth('张三','李四','王五'); //打印结果:张三让李四打王五 void printSth(String param1,[String param2,String param3]) => print(param1+'让'+param2+'打'+param3); printSth('张三','李四'); //打印结果:张三让李四打null
(2)有默认值的例子
void printSth(String param1,[String param2,String param3 = '王五']) => print(param1+'让'+param2+'打'+param3); printSth('张三','李四'); //打印结果:张三让李四打王五
总结一下命名参数和位置参数
命名参数:使用{}将参数包裹起来,传参时须要指定参数名,默认值使用“:”指定;
位置参数:使用[]将参数包裹起来,传参时不须要指定参数名,按位排,默认值使用“=”指定;
五.main函数
Flutter应用程序必需要有一个main函数,和其余语言同样做为程序的入口函数,下面的代码表示应用要启动MyApp类;
void main() => runApp(MyApp());
六.函数的返回值
在Dart语言中,函数的返回值有以下特色:
1.全部的函数都会有返回值;
2.若是没有指定函数的返回值,则默认的返回值是null;
3.没有返回值的函数,系统会在最后添加隐式的return语句;