1

我看到可以对采用重复类型参数的方法使用以下语法:

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 ) }
}

我怎样才能使这项工作?干杯

4

1 回答 1

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。

于 2013-05-15T20:25:51.910 回答