我可以:
scala> def foo( f: => String) = println(f)
foo: (f: => String)Unit
我可以:
scala> def foo( f: String*) = f.map(println)
foo: (f: String*)Seq[Unit]
但我不能:
scala> def foo( f: =>String* ) = f.map(println)
<console>:1: error: ')' expected but identifier found.
def foo( f: =>String* ) = f.map(println)
^
也不
scala> def foo( f: (=>String)* ) = f.map(println)
<console>:1: error: no by-name parameter type allowed here
def foo( f: (=>String)* ) = f.map(println)
^
还有其他方法可以做我想做的事吗?为什么不允许这样做?