摘要:
隐式方法:
package smart.iot
import java.io.File
import scala.io.Source
class concealFunc(f:File) {
  
  def GetTxt=Source.fromFile(f.getPath).mkString
  def SayHello=println("hello world!")
}
//隐式转换
object Context
{
  implicit def file(f:File)=new concealFunc(f)
}
object concealFunc
{
  def main(args: Array[String]): Unit = {
   //引用上面定义的隐士方法  
   import Context._
   var txt=new File("d:/218/a.txt")
   //实现隐式转换的方法,扩展了 File 的功能
   println(txt.GetTxt)
   txt.SayHello
  }
     
   
}
隐式参数,自动推断参数类型
object genericvar
{
//隐式参数
def syaHello(msg:String)(implicit name:String)=println(msg+name)
//隐式参数之 扩中 类型
def min[T](x:T,y:T)(implicit s:T=>Ordered[T])=if(x<y) x else y
}
object gener
{
implicit var name:String="james"
}
object generic
{
def main(args: Array[String]): Unit = {
import gener._
genericvar.syaHello("hello")
var value=genericvar.min(1, 2)
println(value)
}
result:
hello james
1
隐式类的实现
package smart.iot
class implicitClass {
  
  def smat=println("smat steps")
}
object common
{
   implicit class extendsclass(obj:implicitClass)
   {
     def func1=println("test A")
     def func2=println("test B")
   }
}
object implicitClass
{
  def main(args: Array[String]): Unit = {
    import common._
    var imp=new implicitClass;
    
    imp.smat;
    imp.func1
    imp.func2
    
  }
}
scala 高级十八 scala隐式方法,隐式参数的实现和使用
原文:http://www.cnblogs.com/IChing/p/7125200.html