Scala隐式转换实战
来源:互联网 发布:王珊数据库第五版视频 编辑:程序博客网 时间:2024/05/22 14:14
- 隐式方法
- 隐式参数
- 隐式类
- 隐式对象
隐式方法
import scala.io.Sourceimport java.io.Fileclass RichFile (val file : File){ def read = Source.fromFile(file.getPath)}//导入隐式方法之后file自动会转换至RichFileobject Context { implicit def file2RichFile (file : File) = new RichFile(file)}object Hello_implicit { def main(args: Array[String]): Unit = { import Context.file2RichFile println(new File("E:\\Hello.txt").read) }}
隐式参数
object Context_implicits{ implicit val default : String = "Java"}object Param{ //声明隐式参数后会在作用域范围内导入默认的参数 def print(content : String)(implicit language : String){ println(language + " : " + content) }}object implicit_Parameters { def main(args: Array[String]): Unit = { Param.print("Spark")("Scala") import Context_implicits._ Param.print("Hadoop") }}
隐式类
object Context_Helper{ implicit class FileEnhancer(file : File){ def read = Source.fromFile(file.getPath) } implicit class Op (x : Int){ def add (second : Int) = x + second }}object implicit_class { def main(args: Array[String]): Unit = { import Context_Helper._ println(1.add(2)) println(new File("E:\\Text.txt").read) }}
隐式对象
abstract class Template[T]{ def add(x : T, y : T) : T}abstract class SubTemplate[T] extends Template[T]{ def unit : T}object implicit_object { def main(args: Array[String]): Unit = { implicit object StringAdd extends SubTemplate[String]{ def add(x : String, y : String) : String = x concat y def unit : String = "" } implicit object IntAdd extends SubTemplate[Int]{ def add(x : Int, y : Int) : Int = x + y def unit : Int = 0 } def sum[A](xs : List[A])(implicit m : SubTemplate[A]) : A = if (xs.isEmpty) m.unit else m.add(xs.head, sum(xs.tail)) println(sum(List(1, 2, 3))) println(sum(List("a", "b", "c"))) }}
0 0
- Scala隐式转换实战
- scala-隐式转换
- scala 隐式转换
- Scala隐式转换
- Scala隐式转换
- scala隐式转换
- scala隐式转换
- scala 隐式转换
- scala隐式转换
- scala隐式转换
- scala隐式转换
- scala隐式转换
- Scala--隐式转换
- Scala进阶源码实战之八——隐式转换和隐式参数
- Scala深入浅出进阶经典 第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析
- 59.Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析
- scala implicit 隐式转换
- scala implicit隐式转换
- android如何打包成jar包
- NSOperation
- warning :OnDestroy or PostNcDestroy in derived class will not be called
- android webview 自定义404错误页面!
- Linux - man page
- Scala隐式转换实战
- iOS:苹果推送(二)----pem证书的生成
- 图像otsu阈值化
- VGA.DVI.HDMI.DP
- Linux的用户和用户组管理
- 整理的前端UI框架
- Android动画其实并不难
- 学习SQL语句的经验与体会
- Android自定义数值增减控件