scalaベース暗黙タイプ
1943 ワード
キーワードimplicitは、暗黙的な定義をマークするために使用されます.コンパイラは、暗黙的に変化する候補として選択できます.任意の変数、関数、またはオブジェクトをマークするにはimplicitを使用します.
implicitの任意の名前を定義できます.通常、任意の名前を付けることができます.implicitの名前は2つの場合にのみ役立ちます.1つは、1つの方法で明確に指定したいことです.もう1つは、それを現在の役割ドメインに導入したいことです.
implicitの任意の名前を定義できます.通常、任意の名前を付けることができます.implicitの名前は2つの場合にのみ役立ちます.1つは、1つの方法で明確に指定したいことです.もう1つは、それを現在の役割ドメインに導入したいことです.
object Implicit {
def main(args: Array[String]): Unit = {
import java.util._
class DateHelper(number: Int){
def days(when: String): Date={
var date = Calendar.getInstance()
when match{
case "ago" => date.add(Calendar.DAY_OF_MONTH,-number)
case "from_now" => date.add(Calendar.DAY_OF_MONTH,number)
case _ => date
}
date.getTime()
}
}
// ( import )
//scala , int DateHelper days
implicit def convertInt2DateHelper(number: Int) = new DateHelper(number)
val past = 2 days "ago"
println(past)
val appointment = 5 days "from_now"
println(appointment)
}
}