这个例子本质和上一章是一样的。
定义一个静态类Conetxt
object Context {
implicit val a="java"
implicit val b="python"
}
定义一个main
package scalapackage.testcurrying
/**
* Created by Germmy on 2018/4/11.
*/
object CurryingDemo {
def m1(str:String)(implicit name:String="scala"): String ={//返回值是个String
str+name
}
def main(args: Array[String]) {
import Context.a
// import Context.b
val func=m1("hi~")
println(func)
}
}
总结
柯里化看上去很高深,其实并不难
用人话说就是:加一个代理,这个代理帮你搞了一些默认值。
这个默认值可以用_代替,当然换=>这种写法连默认值也不用了;当然最高级的方法就是和隐式转换一起使用