美文网首页
2.5 可选形参

2.5 可选形参

作者: 冯可乐同学 | 来源:发表于2022-06-21 14:31 被阅读0次
  1. Groovy 中可以把方法或构造器的形参设为可选的。实际上,我们想设置多少就可以设置多少,但这些形参必须位于形参列表的末尾。利用这一特性,可以在演进式设计中向已有的方法添加新的形参。

  2. 要定义形参,只需要在形参列表中给它赋一个值。举个栗子:

def log(x, base = 10){
    Math.log(x) / Math.log(base)
}

println log(1024)
println log(1024, 10)
println log(1024, 2)

打印结果:

3.0102999566398116
3.0102999566398116
10.0
  1. 如输出打印所示,在缺少实参是,Groovy 使用了形参的默认值。当然了,可选的形参可以不止一个,举例如下:
def printValue(a, b = 1, c = 2, d = 3, e = 4, f = 5) {
    println "a = " + a + ", b = " + b + ", c = " + c + ", d = " + d + ", e = " + e + ", f = " + f
}

printValue(10)
printValue(10, 11, 12, 13)
printValue(10, 11, 12, 13)
printValue(10, 11, 12, 13, 14, 15)

打印结果:

a = 10, b = 1, c = 2, d = 3, e = 4, f = 5
a = 10, b = 11, c = 12, d = 13, e = 4, f = 5
a = 10, b = 11, c = 12, d = 13, e = 4, f = 5
a = 10, b = 11, c = 12, d = 13, e = 14, f = 15
  1. Groovy 还会把末尾的数组形参视作可选的。这样的话,可以为最后一个形参提供零个或多个值,举个栗子:
def task(name, String[] details){
    println "$name -- $details"
}

task('Call', '123-456-789')
task('Call', '123-456-789', '789-456-123')
task('Check Mail')

打印结果:

Call -- [123-456-789]
Call -- [123-456-789, 789-456-123]
Check Mail -- []

相关文章

  • 2.5 可选形参

    Groovy 中可以把方法或构造器的形参设为可选的。实际上,我们想设置多少就可以设置多少,但这些形参必须位于形参列...

  • 函数

    定义 万恶的实参和形参,除了最基本的按顺序录入,还可以这样 可以给出默认形参值 形参可选 return语句 指针 ...

  • 前端学习日记-js函数的参数(个人学习笔记,如果错了请指正)

    一、函数的实参和形参 1、可选形参是指调用函数时可以省略的参数,一般会有默认值的设置 当用这种可选实参实现函数时,...

  • js笔记

    函数 1. 在函数中使用注释 /* optional */ 来强调形参是可选的. function a( o ,/...

  • 函数的实参 函数的形参 闭包 js

    函数的实参和形参 可选形参 等价于 这两句是完全等价的,只不过后者需要提前声明a而已如果参数没有传入,其余的填充u...

  • javascript 函数

    一、形参和实参 1.可选形参 2.函数参数优化 函数参数的优化的目的是使函数在调用时更方便,运行时更健壮 3.ar...

  • typeScript学习02

    typescript中的函数 ts中函数定义 ts中函数的传参 ts中的函数的可选参数(js中函数的形参和实参可以...

  • 3、TS 函数

    1、函数的返回值 2、函数的形参 3、可选参数 4、默认值如果设置了默认,那他就是可选参数,不需要再加问号 5、剩余参数

  • swift

    swift 函数 一、函数的定义函数的定义格式 形参列表的格式形参名1: 形参类型1, 形参名2: 形参类型2, ...

  • js自定义类&自定义对象

    自定义类: function 类名(形参1,形参2){ this.属性1=形参1; this.属性2=形参2; t...

网友评论

      本文标题:2.5 可选形参

      本文链接:https://www.haomeiwen.com/subject/edbcvrtx.html