æ ¹æ®this questionå’Œscalaè¯è¨€è§„范,å¯ä»¥ä½¿ç”¨ä»¥ä¸‹è¯æ³•æŽ’除导入: import java.{xxx => _, _}
。
然而,我å‘现这并ä¸é€‚用于暗示。例如:
Welcome to Scala 2.12.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.
scala> import schema.Encoder.{ofGeneric => _, _}
import schema.Encoder.{ofGeneric=>_, _}
æ ¹æ®è§„范,该æˆå‘˜æ— 法访问:
scala> ofGeneric
<console>:15: error: not found: value ofGeneric
ofGeneric
^
但是,处于éšå¼èŒƒå›´ï¼Œæˆ‘å¯ä»¥éšå¼è®¿é—®å®ƒï¼š
scala> :implicits
/* 10 implicit members imported from schema.Encoder */
/* 10 defined in schema.Encoder */
implicit val ofBoolean: Boolean]
implicit def ofConcreteElem[K <: Symbol, A](implicit witness: shapeless.Witness.Aux[K],i
mplicit E: A]): shapeless.labelled.FieldType[K,A]]
implicit val ofDateTime: java.time.OffsetDateTime]
implicit val ofDouble: Double]
implicit def ofElem[K <: Symbol, A, C[_]](implicit witness: shapeless.Witness.Aux[K],imp
licit E: shapeless.Lazy[A]],implicit C: cats.Foldable[C]): shapeless.labelled.FieldType[K,
C[A]]]
implicit def ofGeneric[A, L <: shapeless.HList](implicit G: shapeless.LabelledGeneric.Au
x[A,L],implicit HE: shapeless.Lazy[L]]): A]
implicit def ofHListSeq[K <: Symbol, H, T <: shapeless.HList](implicit witness: shapeles
s.Witness.Aux[K],implicit HE: shapeless.Lazy[shapeless.labelled.FieldType[K,H]]],implicit
TE: shapeless.Lazy[T]]): shapeless.labelled.FieldType[K,H] :: T]
implicit val ofHNil: shapeless.HNil]
implicit val ofInt: Int]
implicit def ofString: String]
scala> implicitly[schema.Encoder[Tuple2[Int,String]]]
res3: schema.Encoder[(Int, String)] = schema.Encoder$$anonfun$ofGeneric$2@341619cc
^^^^^^^^^
问题:
ç”案 0 :(得分:1)
æ¥è‡ªè§„范:
 Âæœ‰èµ„æ ¼ä¼ é€’ç»™éšå¼çš„实际å‚æ•°   TT类型的å‚数分为两类。首先,符åˆæ¡ä»¶çš„是全部 Â Â æ ‡è¯†ç¬¦xx,å¯ä»¥åœ¨æ–¹æ³•è°ƒç”¨ç‚¹è®¿é—®   ...... 如果没有   æ¤è§„则下的符åˆæ¡ä»¶çš„æ ‡è¯†ç¬¦ï¼Œç„¶åŽæ˜¯ç¬¬äºŒä¸ªç¬¦åˆæ¡ä»¶çš„æ ‡è¯†ç¬¦   属于éšå¼èŒƒå›´çš„æŸä¸ªå¯¹è±¡çš„所有éšå¼æˆå‘˜   éšå¼å‚数的类型,TT。
   ÂTT类型的éšå¼èŒƒå›´åŒ…括所有的伴éšæ¨¡å—   与éšå¼å‚数类型相关è”的类。
所以,这就是说,一旦å°è¯•æŸ¥çœ‹æœ¬åœ°èŒƒå›´ï¼Œå®ƒä¼šåœ¨ä¼´éšå¯¹è±¡ä¸å¯»æ‰¾éšå«ã€‚
确实å¯ä»¥é€šè¿‡è°ƒç”¨ä¸Šé¢çš„implicitly[...]
表达å¼è€Œä¸é¦–先导入任何æ¥çœ‹åˆ°è¿™ä¸€ç‚¹;它åªæ˜¯èµ·ä½œç”¨ï¼Œå› 为这些方法是伴侣的一部分。
æ ¹æ®ä¸Šé¢çš„引用,这应该æ„味ç€å¦‚果我创建和/或导入一个éšå«åˆ°ä¸Žä¼´éšå¯¹è±¡ä¸å…·æœ‰ç›¸åŒç¾å的范围,它们将优先,从而消除了“排除éšå¼å¯¼å‡ºâ€çš„需è¦'å°±åƒæˆ‘原æ¥çš„é—®é¢˜ä¸€æ ·ã€‚
ç”案 1 :(得分:0)
ä¸ç¡®å®šç¬¬ä¸€ä¸ªé—®é¢˜ï¼Œä½†è§£å†³æ–¹æ³•æ˜¯åœ¨èŒƒå›´å†…定义一个具有相åŒå称的éžéšå¼æˆå‘˜ã€‚