具有重复参数的scala函数

时间:2013-05-15 20:21:39

标签: function scala capitalize

我发现对于采用重复类型参数的方法,可以使用以下语法:

def capitalizeAll( args: String*) = {
  args.map { args => args.capitalize }
}

但是我想知道如何使用函数而不是“args => args.capitalize”

例如

(不起作用):

def func(s: String): String = { s.capitalize }
def capitalizeAll2( args: String*) = {
    args.map { func( args ) }
}

我该怎么做才能做到这一点? 干杯

1 个答案:

答案 0 :(得分:3)

没有魔力:

def func(s: String): String = { s.capitalize }
def capitalizeAll2( args: String*) = {
    args.map { arg => func( arg ) }
}

在这里,我将arg名称赋予当前处理的字符串(在所有args字符串中)。你的第一个例子只是因为阴影(所有字符串都是args和当前字符串给出相同的名称,只是阴影原始)。

几乎没有魔法......

def capitalizeAll3( args: String*) = {
    args.map(func)
}

最新的示例使用语法糖来应用只有一个参数的函数到args。