Scala中“T =:= Int = null”是什么意思?

时间:2017-10-08 01:22:42

标签: scala

如以下代码所示。

class A[T] {
  def add(n: Int)(implicit env: T =:= Int = null): Int = n + 1
}

object A extends App {
  val a = new A[Int]
  a.add(1) // 2
}

我知道T =:= Int表示T应该是Int类型,但= null部分是什么意思?

注意:这个例子由我组成。如果你不恰当的话可以告诉我= null的正确使用情况会更好。

1 个答案:

答案 0 :(得分:6)

Set mypic = my_word.Selection.InlineShapes.AddPicture(Photo_Browser.Photo_Location & "\" & Photo_Browser.Photo_List.List(i), False, True) my_word.activedocument.InlineShapes(my_word.activedocument.InlineShapes.Count).Select my_word.Selection.InsertCaption Label:="Figure", TitleAutoText:="InsertCaption1", _ Title:=":", Position:=wdCaptionPositionBelow, ExcludeLabel:=0 只是为null分配默认值,就像您对任何其他参数一样。 这是一种聪明的方法来确定该类型是否实际上是ev

Int

诀窍是,当编译器看到 def isInt[T](implicit ev: T =:= Int = null): Boolean = env != null isInt[Int] // true isInt[String] // false 时,它会传递实际的隐含值,当它找不到时,它就会将其保留为默认值。 因此,通过检查Int是否为ev,您可以判断隐含在呼叫站点是否可用。