如何编写常见语言带默认参数值的函数
2015-03-03 20:49 hduhans 阅读(954) 评论(0) 编辑 收藏 举报我们在定义函数时,有时候需要让参数带默认值,在各种语言中,带默认值的参数写法也不尽相同。
public void DemoMethod(String name, String job="programmer", String address="Hangzhou") { }
1、赋值方式一,赋值在不指定参数的前提下,按顺序逐个给参数进行赋值:
DemoMethod("hans");
DemoMethod("hans", "student");
DemoMethod("hans", "student", "Ningbo");
2、赋值方式二,通过“参数名:参数值”来直接给某个参数赋值,直接跳过某些带默认值的参数:
DemoMethod("hans", address: "Ningbo");
注意事项:
① 缺省参数的声明只能放在普通参数之后;
② 指定的缺省值必须是一个常量,如方法 void TestMeothod(DateTime date = DateTime.Now){} 是不能通过编译的;
Java目前还不支持函数参数带默认值,只能通过重载来实现此功能,实现方法如下所示:
public void DemoMethod(String name){ DemoMethod(name,"programmer","Hangzhou"); } public void DemoMethod(String name,String job){ DemoMethod(name,job,"Hangzhou"); } public void DemoMethod(String name,String job,String address){}
function TestMethod($name, $job="programmer", $address="HangZhou") { }
PHP支持函数默认值,但是不支持跳跃式给参数赋值,如在方法TestMethod中,如果想给$name和$address赋值,$job使用默认值,与C#不同的是,这在PHP是不能直接实现的,但可以通过改动函数人为实现,如下所示:
function TestMethod($name,$job="programmer",$address="HangZhou"){ if($job===null) $job="programmer"; print "name=$name,job=$job,address=$address"; }
然后传入参数:TestMethod("hans",null,"Australia") 即可。