scalaの暗黙的
1031 ワード
scalaの暗黙的な操作をより簡潔にすることができ、文末の参考にリストされた
1浅いMap
文中
暗黙的方法
さらに、
リファレンス scala implicit暗黙変換
implicit
の関連ブログは暗黙的な役割と使用方法をよく表現しており、ここでは主にいくつかのケースを分析している.1浅いMap
final class MyTuple2[A](private val self: A) {
def & [B](y: B): (A, B) = Tuple2(self, y)
def map [B](y: B): (A, B) = Tuple2(self, y)
}
object myTrait {
implicit def any2MyTuple2[A](x: A): MyTuple2[A] = new MyTuple2(x)
}
object MapUseDriver extends App {
import myTrait._
val a = Map(1 & "A",2 & "B")
println(a)
val c = Map(1.&("A"),2.&("B"))
println(c)
val b = Map(1 map "A", 2 map "C")
println(b)
val myMap = new MyTuple2[Int](1)
println(myMap.map(2))
}
文中
1 & A
はなぜ有効なのですか?暗黙的方法
any2MyTuple2
の作用により、この作用ドメインの下の任意のタイプのオブジェクトがMyTuple2
タイプに変換される能力、すなわちMyTuple2
の方法を有することができる.さらに、
Predef.scala
のArrowAssoc
クラスおよび暗黙的方法any2ArrowAssoc
を検索することができる.リファレンス