oxb*_*kes 54 scala variadic-functions
我正试图弄清楚如何做以下事情:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, o :: List(os:_*)) )
}
Run Code Online (Sandbox Code Playgroud)
有一个原因,我必须单独声明方法o
和一个os
Seq
.基本上,我最终得到了使用单个对象参数(类型List
)调用的格式方法.尝试:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, (o :: List(os:_*))).toArray )
}
Run Code Online (Sandbox Code Playgroud)
给我类型错误:
发现:数组[任意]
必需的Seq [java.lang.Object]
我尝试过编译,编译但失败的原因和第一个例子差不多.当我尝试
println(String.format(msg, (o :: List(os:_*)) :_* ))
Run Code Online (Sandbox Code Playgroud)
这无法使用隐式转换歧义进行编译(any2ArrowAssoc
和any2stringadd
)
Jam*_*Iry 65
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( String.format(msf, (o :: os.toList).toArray : _* ))
Run Code Online (Sandbox Code Playgroud)
Dan*_*ral 13
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( String.format(msf, o :: os.toList : _* ) )
Run Code Online (Sandbox Code Playgroud)
要么
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( msf format (o :: os.toList : _* ) )
Run Code Online (Sandbox Code Playgroud)
我更喜欢后者,虽然它没有语言环境支持.
归档时间: |
|
查看次数: |
46173 次 |
最近记录: |