zoukankan      html  css  js  c++  java
  • 如何编写常见语言带默认参数值的函数

      我们在定义函数时,有时候需要让参数带默认值,在各种语言中,带默认值的参数写法也不尽相同。

    C#函数默认值

       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函数默认值

       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){}
    PHP函数默认值

       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") 即可。

  • 相关阅读:
    ECMAScript 继承继承机制实现
    ECMAScript 函数定义类或对象
    药品查询APP开发流程(五)开发—yao_search.js
    ECMAScript 函数修改对象
    药品查询APP开发流程(六)开发—yao_category.js
    药品查询APP开发流程(四)开发—app.js
    药品查询APP开发流程(一)需求分析
    药品查询APP开发流程(三)开发—SQLite数据库
    ECMAScript 继承继承机制实例
    求最长递减子序列(转载)
  • 原文地址:https://www.cnblogs.com/hanganglin/p/4311894.html
Copyright © 2011-2022 走看看