10
我有以下方法:阶:定义一个函数(VAL)默认参数VS采用的方法(DEF)
scala> def method_with_default(x: String = "default") = {x + "!"}
method_with_default: (x: String)java.lang.String
scala> method_with_default()
res5: java.lang.String = default!
scala> method_with_default("value")
res6: java.lang.String = value!
我试图实现与VAL相同的,但我得到一个语法错误,如:
(没有默认值,这个编译OK)
scala> val function_with_default = (x: String) => {x + "!"}
function_with_default: String => java.lang.String = <function1>
(但我无法得到这个编译...)
scala> val function_with_default = (x: String = "default") => {x + "!"}
<console>:1: error: ')' expected but '=' found.
val function_with_default = (x: String = "default") => {x + "!"}
^
有什么想法?
功能1与Function0是很聪明,但我会说这是有点臭。只有我的意见在这里。没有讨论的意图。 :) – pedrofurla
顺便说一句,你可以使用糖的函数:'new(String => String)(()=> String){override def apply = apply(“default”);重写def apply(x:String)= x +“!” '工作。 – pedrofurla
我同意这有点臭,但我没有看到没有的解决方案。 –