有没有另一种方法使这项工作?
def b(first:String="hello",second:String) = println("first:"+first+" second:"+second)
b(second="geo")
Run Code Online (Sandbox Code Playgroud)
如果我只用以下方法调用方法:
b("geo")
Run Code Online (Sandbox Code Playgroud)
我明白了:
<console>:7: error: not enough arguments for method b: (first: String,second: String)Unit.
Unspecified value parameter second.
b("geo")
Run Code Online (Sandbox Code Playgroud)
以下是一种可能的方法:您可以使用多个参数列表并进行currying:
scala> def b(first:String="hello")(second:String) = println("first:"+first+" second:"+second)
b: (first: String)(second: String)Unit
scala> b()("Scala")
first:hello second:Scala
scala> val c = b() _
c: (String) => Unit = <function1>
scala> c("Scala")
first:hello second:Scala
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |