Класс scala.=:=
sealed abstract class =:=[From, To] extends <:<[From, To] with Serializable
Абстрактные члены
abstract def substituteBoth[F[_, _]](ftf: F[To, From]): F[From, To]
Заменить To на From и From на To в типе F[To, From], учитывая, что F является конструктором типа с двумя аргументами. В сущности, меняет To и From в типе ftf.
Эквивалентно по возможностям методам substituteCo и substituteContra.
Этот метод невозможно реализовать без throw или "обмана", если From = To, поэтому он гарантирует, что это действительно представляет равенство типов.
- returns
ftf, но с (возможно) другим типом
Члены конкретных значений
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
trueесли !(this == that), в противном случае false.
- Definition Classes
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращается значение хэша, которое соответствует равенству значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хэша для каждого из них. Для null возвращается код хэша, где null.hashCode вызывает NullPointerException.
- returns
значение хэша, соответствующее ==
- Definition Classes
- AnyRef → Any
def +(other: String): String
- Implicit
- Этот член добавлен неявным преобразованием из =:=[From, To] в any2stringadd[=:=[From, To]] выполненным методом any2stringadd в scala.Predef.
- Definition Classes
- any2stringadd
def ->[B](y: B): (=:=[From, To], B)
- Implicit
- Этот член добавлен неявным преобразованием из =:=[From, To] в ArrowAssoc[=:=[From, To]] выполненным методом ArrowAssoc в scala.Predef.Это преобразование произойдёт только если To является подклассом Option[Nothing] (To <: Option[Nothing]).
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли объект-приёмник эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
def andThen[C](r: =:=[To, C]): =:=[From, C]
def andThen[C](r: <:<[To, C]): <:<[From, C]
Если From <: To и To <: C, то From <: C (подтипизация транзитивна)
- Definition Classes
- <:<
def andThen[C](r: (To) => C): (From) => C
Компонует две инстанции Function1 в новый Function1, с применением этого метода в первую очередь.
- returns
новый метод
fтакой, чтоf(x) == g(apply(x))
def apply(f: From): To
Преобразование From в To. Это гарантированно является тождественным методом.
Этот метод часто вызывается неявным образом, так как неявный A =:= B служит неявным представлением A => B.
- f
некое значение типа
From- returns
f, но с (возможно) другим типом
final def asInstanceOf[T0]: T0
Преобразовать объект-получатель в тип T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, являются ли элементы списка требуемого типа.
- returns
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стираемого типаT0.
def clone(): AnyRef
Создать копию объекта-получателя.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-получателя.
def compose[C](r: =:=[C, From]): =:=[C, To]
def compose[C](r: <:<[C, From]): <:<[C, To]
Если From <: To и C <: From, то C <: To (подтипизация транзитивна)
- Definition Classes
- <:<
def compose[C](r: (C) => From): (C) => To
Компонует два экземпляра Function1 в новый Function1, при этом текущая функция применяется последней.
- returns
новая функция
fтакая, чтоf(x) == apply(g(x))
def ensuring(cond: (=:=[From, To]) => Boolean, msg: => Any): =:=[From, To]
- Неявный
- Этот член добавлен неявным преобразованием из =:=[From, To] в Ensuring[=:=[From, To]], выполненным методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (=:=[From, To]) => Boolean): =:=[From, To]
- Неявный
- Этот член добавлен неявным преобразованием из =:=[From, To] в Ensuring[=:=[From, To]], выполненным методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: => Any): =:=[From, To]
- Неявный
- Этот член добавлен неявным преобразованием из =:=[From, To] в Ensuring[=:=[From, To]], выполненным методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): =:=[From, To]
- Неявный
- Этот член добавлен неявным преобразованием из =:=[From, To] в Ensuring[=:=[From, To]], выполненным методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef, и обладает тремя дополнительными свойствами:
-
Он является согласованным: для любых непустых экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого непустого экземпляра x типа AnyRef, вызовы x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить, чтобы их поведение соответствовало равенству ссылок. Таким образом, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хэша (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод сравнения для ссылочных типов. По умолчанию делегирует вызов к eq.
См. также equals в scala.Any.
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.
Подробности о том, когда и будет ли вызываться метод finalize, а также взаимодействие finalize с нелокальными возвратами и исключениями, зависят от платформы.
def flip: =:=[To, From]
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной format строкой. Формат строк аналогичен String.format (@см java.lang.String.format).
- Implicit
- Этот член добавлен неявным преобразованием из =:=[From, To] вStringFormat[=:=[From, To]] выполняемым методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- returns
значение хэша для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки происходит с учётом стирания типов Scala. Таким образом, выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как тип аргумента стирается на этапе компиляции, проверить, являются ли элементы списка указанного типа, невозможно.
- returns
trueесли объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Definition Classes
- Any
def liftCo[F[_]]: =:=[F[From], F[To]]
def liftContra[F[_]]: =:=[F[To], F[From]]
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Определяющие классы
- AnyRef
final def notify(): Unit
Разбуживает единственную нить, ожидающую монитора объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
final def notifyAll(): Unit
Разбуживает все нити, ожидающие монитора объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
def substituteCo[F[_]](ff: F[From]): F[To]
Заменяет From в типе F[From], где F - любой конструктор типа, на To.
Эквивалентно по силе каждому из substituteBoth и substituteContra.
Этот метод невозможно реализовать без throw или аналогичного "мошенничества", если From = To, поэтому он гарантирует, что это действительно представляет собой равенство типов.
- возвращает
ff, но с (возможно) другим типом
def substituteContra[F[_]](ft: F[To]): F[From]
Заменяет To в типе F[To], где F - любой конструктор типа, на From.
Эквивалентно по силе каждому из substituteBoth и substituteCo.
Этот метод невозможно реализовать без throw или аналогичного "мошенничества", если From = To, поэтому он гарантирует, что это действительно представляет собой равенство типов.
- возвращает
ft, но с (возможно) другим типом
final def synchronized[T0](arg0: => T0): T0
- Определяющие классы
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, "@" и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
def unlift: PartialFunction[From, B]
Преобразует опциональную функцию в частичную функцию.
- Неявный
- Этот член добавлен неявным преобразованием из =:=[From, To] в UnliftOps[From, B] выполненное методом UnliftOps в scala.Function1. Это преобразование произойдёт только если To является подклассом Option[B] (To <: Option[B]).
- Определяющие классы
- UnliftOps
В отличие от Function.unlift, этот метод UnliftOps.unlift может использоваться в экстракторах.
val of: Int => Option[String] = { i =>
if (i == 2) {
Some("matched by an optional function")
} else {
None
}
}
util.Random.nextInt(4) match {
case of.unlift(m) => // Convert an optional function to a pattern
println(m)
case _ =>
println("Not matched")
}
final def wait(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/$eq$colon$eq.html
Экземпляр
A =:= Bсвидетельствует о том, что типыAиBравны. Он также выполняет рольA <:< B, но неB <:< A(непосредственно) из-за ограничений на наследование.В случае любых сомнений относительно направления метода, все методы "Co" (включая apply) идут слева направо в типе ("с" типом), а все методы "Contra" - справа налево ("против" типа). Например, apply преобразует
FromвTo, а substituteContra заменяетToнаFromв типе.тип, который доказан равным
Toтип, который доказан равным
FromВариант на месте для scala.collection.mutable.ArrayBuffer#transpose
implicit class BufOps[A](private val buf: ArrayBuffer[A]) extends AnyVal { def inPlaceTranspose[E]()(implicit ev: A =:= ArrayBuffer[E]) = ??? // Because ArrayBuffer is invariant, we can't make do with just a A <:< ArrayBuffer[E] // Getting buffers *out* from buf would work, but adding them back *in* wouldn't. }<:< для выражения ограничений на подтипизацию