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

  • 相关阅读:
    华为部分真机调试无法显示log问题解决
    Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题)
    Android Studio Build APK没有报错,但是Generate signed apk报错
    安卓如何将TXT文件写到特定路径
    unity 显示、隐藏Android导航栏
    Unity 代码集锦之图片处理
    打开文件夹
    MVC总结
    unity 获取UGUI中的Text字的坐标
    Unity WWW类调用http
  • 原文地址:https://www.cnblogs.com/hanganglin/p/4311894.html
Copyright © 2011-2022 走看看