scala.reflect.classTag的不同用法

ruarlubt  于 6个月前  发布在  Scala
关注(0)|答案(1)|浏览(117)

我是Scala的新手,我看到在代码库中检索classTags有两种用法。我可以说下面的两种用法(stringClassTag v.s stringClassTag2)是等价的吗?谢谢。

import scala.reflect.{classTag, ClassTag}

val stringClassTag: ClassTag[String] = implicitly[ClassTag[String]]

val stringClassTag2: ClassTag[String] = classTag[String]

字符串

bfrts1fy

bfrts1fy1#

是的,它们是一样的。
如果你看一下classTag的定义:

def classTag[T](implicit ctag: ClassTag[T]) = ctag

字符串
implicitly

@inline def implicitly[T](implicit e: T): T = e


implicitly是一个泛型方法,可以“召唤”任何类型的隐式值TclassTag也是如此,但仅适用于ClassTag[T]类型。

相关问题