Scala有多少个隐含的意思?
发布时间:2020-12-16 09:34:09 所属栏目:安全 来源:网络整理
导读:如果我没有导入任何东西,但Scala通常的默认值,有多少个隐含(隐式转换)在范围内? 有没有一个完整的列表在哪里,最好按类型组织,他们可以采取行动? 解决方法 Scala 2.9.1有96个意见,其中大部分是转换,默认情况下导入。请注意,还有其他一些不显示的含义
如果我没有导入任何东西,但Scala通常的默认值,有多少个隐含(隐式转换)在范围内?
有没有一个完整的列表在哪里,最好按类型组织,他们可以采取行动? 解决方法
Scala 2.9.1有96个意见,其中大部分是转换,默认情况下导入。请注意,还有其他一些不显示的含义,因为它们在特定类的对象协同服务器上定义。例如,有一个隐含的Ordering [T] =>因为它在Ordering的对象伴侣上定义,所以订购[Iterable [T]]不会出现在下面。
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM,Java 1.6.0_26). Type in expressions to have them evaluated. Type :help for more information. scala> :implicits No implicits have been imported other than those in Predef. scala> :implicits -v /* 96 implicit members imported from scala.Predef */ /* 66 inherited from scala.Predef */ implicit def Double2double(x: jl.Double): Double implicit def byte2double(x: Byte): Double implicit def char2double(x: Char): Double implicit def float2double(x: Float): Double implicit def int2double(x: Int): Double implicit def long2double(x: Long): Double implicit def short2double(x: Short): Double implicit def Float2float(x: jl.Float): Float implicit def byte2float(x: Byte): Float implicit def char2float(x: Char): Float implicit def int2float(x: Int): Float implicit def long2float(x: Long): Float implicit def short2float(x: Short): Float implicit def Integer2int(x: jl.Integer): Int implicit def byte2int(x: Byte): Int implicit def char2int(x: Char): Int implicit def short2int(x: Short): Int implicit def Long2long(x: jl.Long): Long implicit def byte2long(x: Byte): Long implicit def char2long(x: Char): Long implicit def int2long(x: Int): Long implicit def short2long(x: Short): Long implicit def boolean2BooleanConflict(x: Boolean): jl.Object implicit def byte2ByteConflict(x: Byte): jl.Object implicit def char2CharacterConflict(x: Char): jl.Object implicit def double2DoubleConflict(x: Double): jl.Object implicit def float2FloatConflict(x: Float): jl.Object implicit def int2IntegerConflict(x: Int): jl.Object implicit def long2LongConflict(x: Long): jl.Object implicit def short2ShortConflict(x: Short): jl.Object implicit def booleanArrayOps(xs: Array[Boolean]): mutable.ArrayOps[Boolean] implicit def byteArrayOps(xs: Array[Byte]): mutable.ArrayOps[Byte] implicit def charArrayOps(xs: Array[Char]): mutable.ArrayOps[Char] implicit def doubleArrayOps(xs: Array[Double]): mutable.ArrayOps[Double] implicit def floatArrayOps(xs: Array[Float]): mutable.ArrayOps[Float] implicit def genericArrayOps[T](xs: Array[T]): mutable.ArrayOps[T] implicit def intArrayOps(xs: Array[Int]): mutable.ArrayOps[Int] implicit def longArrayOps(xs: Array[Long]): mutable.ArrayOps[Long] implicit def refArrayOps[T <: AnyRef](xs: Array[T]): mutable.ArrayOps[T] implicit def shortArrayOps(xs: Array[Short]): mutable.ArrayOps[Short] implicit def unitArrayOps(xs: Array[Unit]): mutable.ArrayOps[Unit] implicit def Boolean2boolean(x: jl.Boolean): Boolean implicit def Byte2byte(x: jl.Byte): Byte implicit def Character2char(x: jl.Character): Char implicit def Short2short(x: jl.Short): Short implicit def any2ArrowAssoc[A](x: A): ArrowAssoc[A] implicit def any2Ensuring[A](x: A): Ensuring[A] implicit def any2stringadd(x: Any): runtime.StringAdd implicit def arrayToCharSequence(xs: Array[Char]): jl.CharSequence implicit def augmentString(x: String): immutable.StringOps implicit def boolean2Boolean(x: Boolean): jl.Boolean implicit def byte2Byte(x: Byte): jl.Byte implicit def byte2short(x: Byte): Short implicit def char2Character(x: Char): jl.Character implicit def conforms[A]: <:<[A,A] implicit def double2Double(x: Double): jl.Double implicit def exceptionWrapper(exc: Throwable): runtime.RichException implicit def float2Float(x: Float): jl.Float implicit def int2Integer(x: Int): jl.Integer implicit def long2Long(x: Long): jl.Long implicit def seqToCharSequence(xs: IndexedSeq[Char]): jl.CharSequence implicit def short2Short(x: Short): jl.Short implicit def stringCanBuildFrom: generic.CanBuildFrom[String,Char,String] implicit def unaugmentString(x: immutable.StringOps): String implicit def zipped2ToTraversable[El1,El2](zz: (_$1,_$2)#Zipped[_,El1,_,El2]): Traversable[(El1,El2)] implicit def zipped3ToTraversable[El1,El2,El3](zz: (_$5,_$6,_$7)#Zipped[_,El3]): Traversable[(El1,El3)] /* 30 inherited from scala.LowPriorityImplicits */ implicit def genericWrapArray[T](xs: Array[T]): mutable.WrappedArray[T] implicit def wrapBooleanArray(xs: Array[Boolean]): mutable.WrappedArray[Boolean] implicit def wrapByteArray(xs: Array[Byte]): mutable.WrappedArray[Byte] implicit def wrapCharArray(xs: Array[Char]): mutable.WrappedArray[Char] implicit def wrapDoubleArray(xs: Array[Double]): mutable.WrappedArray[Double] implicit def wrapFloatArray(xs: Array[Float]): mutable.WrappedArray[Float] implicit def wrapIntArray(xs: Array[Int]): mutable.WrappedArray[Int] implicit def wrapLongArray(xs: Array[Long]): mutable.WrappedArray[Long] implicit def wrapRefArray[T <: AnyRef](xs: Array[T]): mutable.WrappedArray[T] implicit def wrapShortArray(xs: Array[Short]): mutable.WrappedArray[Short] implicit def wrapUnitArray(xs: Array[Unit]): mutable.WrappedArray[Unit] implicit def Boolean2booleanNullConflict(x: Null): Boolean implicit def Byte2byteNullConflict(x: Null): Byte implicit def Character2charNullConflict(x: Null): Char implicit def Double2doubleNullConflict(x: Null): Double implicit def Float2floatNullConflict(x: Null): Float implicit def Integer2intNullConflict(x: Null): Int implicit def Long2longNullConflict(x: Null): Long implicit def Short2shortNullConflict(x: Null): Short implicit def booleanWrapper(x: Boolean): runtime.RichBoolean implicit def byteWrapper(x: Byte): runtime.RichByte implicit def charWrapper(c: Char): runtime.RichChar implicit def doubleWrapper(x: Double): runtime.RichDouble implicit def fallbackStringCanBuildFrom[T]: generic.CanBuildFrom[String,T,immutable.IndexedSeq[T]] implicit def floatWrapper(x: Float): runtime.RichFloat implicit def intWrapper(x: Int): runtime.RichInt implicit def longWrapper(x: Long): runtime.RichLong implicit def shortWrapper(x: Short): runtime.RichShort implicit def unwrapString(ws: immutable.WrappedString): String implicit def wrapString(s: String): immutable.WrappedString 而且,只是为了乐趣,Scalaz增加了144: scala> import scalaz._ import scalaz._ scala> import Scalaz._ import Scalaz._ scala> :implicits /* 144 implicit members imported from scalaz.Scalaz */ /* 1 inherited from scalaz.ZipStreams */ implicit def ZipStreamFrom[A](z: scalaz.ZipStream[A]): Stream[A] /* 11 inherited from scalaz.Tuples */ implicit def ToTuple10W[A,B,C,D,E,F,G,H,I,J](t: (A,J)): Tuple10W[A,J] implicit def ToTuple11W[A,J,K](t: (A,K)): Tuple11W[A,K] implicit def ToTuple12W[A,K,L](t: (A,L)): Tuple12W[A,L] implicit def ToTuple2W[A,B](t: (A,B)): Tuple2W[A,B] implicit def ToTuple3W[A,C](t: (A,C)): Tuple3W[A,C] implicit def ToTuple4W[A,D](t: (A,D)): Tuple4W[A,D] implicit def ToTuple5W[A,E](t: (A,E)): Tuple5W[A,E] implicit def ToTuple6W[A,F](t: (A,F)): Tuple6W[A,F] implicit def ToTuple7W[A,G](t: (A,G)): Tuple7W[A,G] implicit def ToTuple8W[A,H](t: (A,H)): Tuple8W[A,H] implicit def ToTuple9W[A,I](t: (A,I)): Tuple9W[A,I] /* 1 inherited from scalaz.Strings */ implicit def StringTo(ss: String): scalaz.StringW /* 1 inherited from scalaz.Streams */ implicit def StreamTo[A](as: Stream[A]): scalaz.StreamW[A] /* 1 inherited from scalaz.Shorts */ implicit def ShortTo(n: Short): scalaz.ShortW /* 3 inherited from scalaz.FingerTree$Ropes */ implicit def unwrapRope[A](wrappedRope: Ropes.this.WrappedRope[A])(implicit evidence$13: ClassManifest[A]): Ropes.this.Rope[A] implicit def wrapRope[A](rope: Ropes.this.Rope[A])(implicit evidence$12: ClassManifest[A]): Ropes.this.WrappedRope[A] implicit def wrapRopeChar(rope: Ropes.this.Rope[Char]): Ropes.this.RopeCharW /* 1 inherited from scalaz.Reducers */ implicit def ReducerMonoid[C,M](r: scalaz.Reducer[C,M]): scalaz.Monoid[M] /* 1 inherited from scalaz.Options */ implicit def OptionTo[A](o: Option[A]): scalaz.OptionW[A] /* 55 inherited from scalaz.Names */ implicit def nameToCallable[A]: scalaz.Name[A] => java.util.concurrent.Callable[A] implicit def nameToConst[A,B](implicit evidence$2: scalaz.Monoid[B]): scalaz.Name[A] => scalaz.Const[B,A] implicit def nameToEitherLeft[A,X]: scalaz.Name[A] => Either.LeftProjection[A,X] implicit def nameToEitherRight[A,X]: scalaz.Name[A] => Either.RightProjection[X,A] implicit def nameToEndo[A]: scalaz.Name[A] => scalaz.Endo[A] implicit def nameToEphemeralStream[A]: scalaz.Name[A] => scalaz.EphemeralStream[A] implicit def nameToFirstOption[A]: scalaz.Name[A] => scalaz.FirstOption[A] implicit def nameToFunction0[A]: scalaz.Name[A] => () => A implicit def nameToFunction1[A,R]: scalaz.Name[A] => R => A implicit def nameToFunction2[A,R,S]: scalaz.Name[A] => (R,S) => A implicit def nameToFunction3[A,S,T]: scalaz.Name[A] => (R,T) => A implicit def nameToFunction4[A,U]: scalaz.Name[A] => (R,U) => A implicit def nameToFunction5[A,U,V]: scalaz.Name[A] => (R,V) => A implicit def nameToFunction6[A,V,W]: scalaz.Name[A] => (R,W) => A implicit def nameToIdentity[A]: scalaz.Name[A] => scalaz.Identity[A] implicit def nameToIterV[A,E]: scalaz.Name[A] => scalaz.IterV[E,A] implicit def nameToJavaArrayBlockingQueue[A]: scalaz.Name[A] => java.util.concurrent.ArrayBlockingQueue[A] implicit def nameToJavaArrayList[A]: scalaz.Name[A] => java.util.ArrayList[A] implicit def nameToJavaConcurrentLinkedQueue[A]: scalaz.Name[A] => java.util.concurrent.ConcurrentLinkedQueue[A] implicit def nameToJavaCopyOnWriteArrayList[A]: scalaz.Name[A] => java.util.concurrent.CopyOnWriteArrayList[A] implicit def nameToJavaCopyOnWriteArraySet[A]: scalaz.Name[A] => java.util.concurrent.CopyOnWriteArraySet[A] implicit def nameToJavaHashSet[A]: scalaz.Name[A] => java.util.HashSet[A] implicit def nameToJavaLinkedBlockingQueue[A]: scalaz.Name[A] => java.util.concurrent.LinkedBlockingQueue[A] implicit def nameToJavaLinkedHashSet[A]: scalaz.Name[A] => java.util.LinkedHashSet[A] implicit def nameToJavaLinkedList[A]: scalaz.Name[A] => java.util.LinkedList[A] implicit def nameToJavaPriorityQueue[A]: scalaz.Name[A] => java.util.PriorityQueue[A] implicit def nameToJavaStack[A]: scalaz.Name[A] => java.util.Stack[A] implicit def nameToJavaSynchronousQueue[A]: scalaz.Name[A] => java.util.concurrent.SynchronousQueue[A] implicit def nameToJavaTreeSet[A]: scalaz.Name[A] => java.util.TreeSet[A] implicit def nameToJavaVector[A]: scalaz.Name[A] => java.util.Vector[A] implicit def nameToLastOption[A]: scalaz.Name[A] => scalaz.LastOption[A] implicit def nameToLazyOption[A]: scalaz.Name[A] => scalaz.LazyOption[A] implicit def nameToList[A]: scalaz.Name[A] => List[A] implicit def nameToMapEntry[A,X](implicit evidence$3: scalaz.Zero[X]): scalaz.Name[A] => java.util.Map.Entry[X,A] implicit def nameToNonEmptyList[A]: scalaz.Name[A] => scalaz.NonEmptyList[A] implicit def nameToOption[A]: scalaz.Name[A] => Option[A] implicit def nameToPromise[A](implicit s: scalaz.concurrent.Strategy): scalaz.Name[A] => scalaz.concurrent.Promise[A] implicit def nameToResponder[A]: scalaz.Name[A] => Responder[A] implicit def nameToState[A,S]: scalaz.Name[A] => scalaz.State[S,A] implicit def nameToStream[A]: scalaz.Name[A] => Stream[A] implicit def nameToTree[A]: scalaz.Name[A] => scalaz.Tree[A] implicit def nameToTreeLoc[A]: scalaz.Name[A] => scalaz.TreeLoc[A] implicit def nameToTuple1[A]: scalaz.Name[A] => (A,) implicit def nameToTuple2[A,R](implicit evidence$5: scalaz.Zero[R]): scalaz.Name[A] => (R,A) implicit def nameToTuple3[A,S](implicit evidence$6: scalaz.Zero[R],implicit evidence$7: scalaz.Zero[S]): scalaz.Name[A] => (R,A) implicit def nameToTuple4[A,T](implicit evidence$8: scalaz.Zero[R],implicit evidence$9: scalaz.Zero[S],implicit evidence$10: scalaz.Zero[T]): scalaz.Name[A] => (R,A) implicit def nameToTuple5[A,U](implicit evidence$11: scalaz.Zero[R],implicit evidence$12: scalaz.Zero[S],implicit evidence$13: scalaz.Zero[T],implicit evidence$14: scalaz.Zero[U]): scalaz.Name[A] => (R,A) implicit def nameToTuple6[A,V](implicit evidence$15: scalaz.Zero[R],implicit evidence$16: scalaz.Zero[S],implicit evidence$17: scalaz.Zero[T],implicit evidence$18: scalaz.Zero[U],implicit evidence$19: scalaz.Zero[V]): scalaz.Name[A] => (R,A) implicit def nameToTuple7[A,W](implicit evidence$20: scalaz.Zero[R],implicit evidence$21: scalaz.Zero[S],implicit evidence$22: scalaz.Zero[T],implicit evidence$23: scalaz.Zero[U],implicit evidence$24: scalaz.Zero[V],implicit evidence$25: scalaz.Zero[W]): scalaz.Name[A] => (R,W,A) implicit def nameToValidation[A,X]: scalaz.Name[A] => scalaz.Validation[X,A] implicit def nameToValidationFailure[A,X]: scalaz.Name[A] => scalaz.FailProjection[A,X] implicit def nameToZipStream[A]: scalaz.Name[A] => scalaz.ZipStream[A] implicit def nameToZipper[A]: scalaz.Name[A] => scalaz.Zipper[A] implicit def nameToStateT[M[_],A](a: scalaz.Name[A])(implicit evidence$4: scalaz.Pure[M]): scalaz.StateT[M,A] implicit def pureName[F[_],A](a: scalaz.Name[A])(implicit p: scalaz.Pure[F]): F[A] /* 1 inherited from scalaz.MetricSpaces */ implicit def levenshteins: scalaz.MetricSpace[String] /* 3 inherited from scalaz.MABs */ implicit def CokleisliMAB[M[_],A,B](k: scalaz.Cokleisli[M,B]): scalaz.MAB[[α,β]scalaz.Cokleisli[M,α,β],B] implicit def Const2MAB[M,B](k: scalaz.Const2[M,β]scalaz.Const2[M,B] implicit def KleisliMAB[M[_],B](k: scalaz.Kleisli[M,β]scalaz.Kleisli[M,B] /* 1 inherited from scalaz.MABLow */ implicit def mab[M[_,_],B](a: M[A,B]): scalaz.MAB[M,B] /* 29 inherited from scalaz.MAs */ implicit def ConstMA[B,A](c: scalaz.Const[B,A]): scalaz.MA[[α]scalaz.Const[B,α],A] implicit def EitherLeftMA[X,A](a: Either.LeftProjection[A,X]): scalaz.MA[[α]Either.LeftProjection[α,X],A] implicit def EitherRightMA[X,A](a: Either.RightProjection[X,A]): scalaz.MA[[α]Either.RightProjection[X,A] implicit def FingerMA[V,A](t: scalaz.Finger[V,A]): scalaz.MA[[α]scalaz.Finger[V,A] implicit def FingerTreeMA[V,A](t: scalaz.FingerTree[V,A]): scalaz.MA[[α]scalaz.FingerTree[V,A] implicit def Function1ApplyMA[A,R](f: A => R): scalaz.MA[[α]A => α,R] implicit def Function2MA[R,A](a: (R,S) => A): scalaz.MA[[α](R,S) => α,A] implicit def Function3MA[R,T) => A): scalaz.MA[[α](R,T) => α,A] implicit def Function4MA[R,U) => A): scalaz.MA[[α](R,U) => α,A] implicit def Function5MA[R,V) => A): scalaz.MA[[α](R,V) => α,A] implicit def Function6MA[R,W) => A): scalaz.MA[[α](R,W) => α,A] implicit def IterVMA[A,E](v: scalaz.IterV[E,A]): scalaz.MA[[α]scalaz.IterV[E,A] implicit def KleisliMA[M[_],B]): scalaz.MA[[α]scalaz.Kleisli[M,B] implicit def MapEntryMA[X,A](e: java.util.Map.Entry[X,A]): scalaz.MA[[α]java.util.Map.Entry[X,A] implicit def MemoMA[V,A](m: scalaz.Memo[A,V]): scalaz.MA[[α]scalaz.Memo[α,V],A] implicit def NodeMA[V,A](t: scalaz.Node[V,A]): scalaz.MA[[α]scalaz.Node[V,A] implicit def STMA[S,A](s: scalaz.effects.ST[S,A]): scalaz.MA[[α]scalaz.effects.ST[S,A] implicit def SeqMA[M[X] <: Seq[X],A](l: M[A]): scalaz.MA[M,A] implicit def SetMA[M[X] <: Set[X],A](s: M[A]): scalaz.MA[M,A] implicit def StateMA[S,A](s: scalaz.State[S,A]): scalaz.MA[[α]scalaz.State[S,A] implicit def Tuple2MA[R,A)): scalaz.MA[[α](R,α),A] implicit def Tuple3MA[R,A] implicit def Tuple4MA[R,A] implicit def Tuple5MA[R,A] implicit def Tuple6MA[R,A] implicit def Tuple7MA[R,A] implicit def ValidationFailureMA[A,E](f: scalaz.FailProjection[E,A]): scalaz.MA[[α]scalaz.FailProjection[α,A],E] implicit def ValidationMA[A,E](v: scalaz.Validation[E,A]): scalaz.MA[[α]scalaz.Validation[E,A] implicit def Function1FlipMAContravariant[A,R](f: R => A): scalaz.MAContravariant[[α]α => A,R] /* 2 inherited from scalaz.MAsLow */ implicit def maContravariantImplicit[M[_],A](a: M[A]): scalaz.MAContravariant[M,A] implicit def maImplicit[M[_],A](a: M[A]): scalaz.MA[M,A] /* 1 inherited from scalaz.Longs */ implicit def LongTo(n: Long): scalaz.LongW /* 1 inherited from scalaz.Lists */ implicit def ListTo[A](as: List[A]): scalaz.ListW[A] /* 1 inherited from scalaz.LastLazyOptions */ implicit def LastLazyOptionTo[A](a: scalaz.LazyOption[A]): scalaz.LastLazyOption[A] /* 1 inherited from scalaz.LastOptions */ implicit def LastOptionTo[A](a: Option[A]): scalaz.LastOption[A] /* 1 inherited from scalaz.Ints */ implicit def IntTo(n: Int): scalaz.IntW /* 1 inherited from scalaz.InputStreams */ implicit def InputStreamTo(v: java.io.InputStream): scalaz.InputStreamW /* 2 inherited from scalaz.Identitys */ implicit def mkIdentity[A](x: => A): scalaz.Identity[A] implicit def unMkIdentity[A](x: scalaz.Identity[A]): A /* 2 inherited from scalaz.Kleislis */ implicit def kleisliBind[M[_],R](implicit b: scalaz.Bind[M]): scalaz.Bind[[x]scalaz.Kleisli[M,x]] implicit def kleisliFn[M[_],B]): A => M[B] /* 2 inherited from scalaz.Function2s */ implicit def Function2From[T1,T2,R](f: scalaz.Function2W[T1,R]): (T1,T2) => R implicit def Function2To[T1,R](f: (T1,T2) => R): scalaz.Function2W[T1,R] /* 2 inherited from scalaz.Function1s */ implicit def Function1From[T,R](f: scalaz.Function1W[T,R]): T => R implicit def Function1To[T,R](f: T => R): scalaz.Function1W[T,R] /* 2 inherited from scalaz.Function0s */ implicit def Function0From[T](f: scalaz.Function0W[T]): () => T implicit def Function0To[T](f: () => T): scalaz.Function0W[T] /* 1 inherited from scalaz.FirstLazyOptions */ implicit def LazyFirstOptionTo[A](a: scalaz.LazyOption[A]): scalaz.FirstLazyOption[A] /* 1 inherited from scalaz.FirstOptions */ implicit def FirstOptionTo[A](a: Option[A]): scalaz.FirstOption[A] /* 1 inherited from scalaz.Extras */ implicit def natToFunction[F[_],G[_],A](f: scalaz.~>[F,G]): F[A] => G[A] /* 1 inherited from scalaz.Enumerations */ implicit def EnumerationTo[A](v: java.util.Enumeration[A]): scalaz.EnumerationW[A] /* 1 inherited from scalaz.Duals */ implicit def DualTo[A](a: A): scalaz.Dual[A] /* 2 inherited from scalaz.Digits */ implicit def DigitLong(d: scalaz.Digit): Long implicit def LongDigit(n: Long): scalaz.Digit /* 1 inherited from scalaz.CharSets */ implicit def CharSetFrom(charSet: scalaz.CharSet): String /* 1 inherited from scalaz.Chars */ implicit def CharTo(c: Char): scalaz.CharW /* 1 inherited from scalaz.Bytes */ implicit def ByteTo(n: Byte): scalaz.ByteW /* 2 inherited from scalaz.Booleans */ implicit def BooleanFrom(b: scalaz.BooleanW): Boolean implicit def BooleanTo(b: Boolean): scalaz.BooleanW /* 1 inherited from scalaz.BigInts */ implicit def BigIntTo(n: BigInt): scalaz.BigIntW /* 1 inherited from scalaz.BigIntegers */ implicit def BigIntegerTo(n: java.math.BigInteger): scalaz.BigIntegerW /* 1 inherited from scalaz.ArrayBytes */ implicit def ArrayByteTo(bs: Array[Byte]): scalaz.ArrayByte /* 1 inherited from scalaz.Alphas */ implicit def AlphaChar(a: scalaz.Alpha): Char /* 1 inherited from scalaz.concurrent.Actors */ implicit def ActorFrom[A](a: scalaz.concurrent.Actor[A]): A => Unit (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |