我发现对于采用重复类型参数的方法,可以使用以下语法:
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 ) }
}
我该怎么做才能做到这一点? 干杯
答案 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。