码迷,mamicode.com
首页 > 其他好文 > 详细

Scala 学习笔记之implicit

时间:2017-06-22 01:13:54      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:blog   结果   print   ack   学习笔记   prefix   inpu   用法   bsp   

implicit 分为隐式转换和隐式参数,下面例子展现了两种方式的用法:

package com.citi.scala

class Man(val name: String) {
  def talkWith(m: SuperMan) {
    println(s"Talk with ${m.name}")
  }

  def SayHello(msg: String)(implicit prefix: String) {
    println(prefix + ", " + msg)
  }

}
object Man {
  //  implicit def manToSuperMan(s: Man): SuperMan = {
  //    new SuperMan(s.name)
  //  }  
}

class SuperMan(val name: String) {
  def flyInSky {
    println("I can fly in the sky")
  }

}
object SuperMan {

}

object ImplicitLearning {
  implicit def manToSuperMan(s: Man): SuperMan = {
    new SuperMan(s.name)
  }

  implicit val prefix: String = "Hello"

  def main(args: Array[String]): Unit = {
    val m = new Man("Sky")
    //对象隐式转换
    m.flyInSky
    //方法参数隐式转换
    m.talkWith(m)

    m.SayHello("World")("See")
    //隐式参数
    m.SayHello("World")
  }
}

运行结果:

I can fly in the sky
Talk with Sky
Input, World
Hello, World

 

  

Scala 学习笔记之implicit

标签:blog   结果   print   ack   学习笔记   prefix   inpu   用法   bsp   

原文地址:http://www.cnblogs.com/AK47Sonic/p/7062289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!