14.scala隐式转换

目录

概述

隐式转换:偷偷的(隐式)对现有功能进行增强(转换)

实践

代码

scala 复制代码
package com.fun.scala

import java.io.File
import scala.io.Source

object ImplicitApp {
  def main(args: Array[String]): Unit = {

    // implicit 2 = to 等价  :定义隐式转换函数
    // implicit def a2B(a:A):B =new B(a.)
    implicit def man2SuperMan(man: Man): SuperMan = new SuperMan(man.name)

    val man = new Man("测试")
    man.fly()

    implicit def file2RichFile(file: File) = new RichFile(file)

    val file = new File("data/wc.data")
    println(file.read())
  }
}

class Man(val name: String)


class SuperMan(val name: String) {
  def fly(): Unit = {
    println(s"$name fly ...")
  }
}

/**
 * 隐式转换 常用命名:RichXxx
 */
class RichFile(val file: File) {
  def read() = Source.fromFile(file.getPath, "utf-8").mkString
}

执行结果

结束

scala隐式转换 至此结束。

相关推荐
点云SLAM2 小时前
constexpr 和 explicit 在 C++ 中被提出的动机
开发语言·c++·explicit关键字·隐式转换·constexpr关键字·c++11/17/20
点云SLAM10 小时前
C++中constexpr 与 explicit关键字使用详解
c++·explicit关键字·隐式转换·c++编译·constexpr关键字·c++11/17/20
顧棟2 天前
JAVA、SCALA 与尾递归
java·开发语言·scala
深兰科技2 天前
坦桑尼亚与新加坡代表团到访深兰科技,促进AI在多领域的应用落地
java·人工智能·typescript·scala·perl·ai大模型·深兰科技
a程序小傲3 天前
scala中的Array
开发语言·后端·scala
kk哥88993 天前
scala 介绍
开发语言·后端·scala
17313 天前
scala中的Array
scala
满山狗尾草4 天前
map的常规操作
scala
渣渣盟6 天前
Flink实时数据写入Redis实战
大数据·scala·apache
pale_moonlight6 天前
十、Scala应用实践(下)
linux·开发语言·scala