Трейт scala.Dynamic
trait Dynamic extends Any
Члены-значения конкретного типа
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), иначе false.
- Определяющие классы
- Any
final def ##(): Int
Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для чисел возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## для каждого из них выведет одинаковое значение хэша. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Определяющие классы
- Any
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Dynamic вany2stringadd[Dynamic] с помощью метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (Dynamic, B)
- Неявный
- Этот член добавлен неявным преобразованием из Dynamic вArrowAssoc[Dynamic] с помощью метода ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- Any
final def asInstanceOf[T0]: T0
Приведение объекта-получателя к типу T0.
Обратите внимание, что успех приведения в ходе выполнения зависит от семантики стирания Scala. Следовательно, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается в процессе компиляции, невозможно проверить, соответствуют ли элементы списка запрошенному типу.
- возвращает
объект-получатель.
- Определяющие классы
- Any
- Исключения
ClassCastExceptionесли объект-получатель не является экземпляром стирания типаT0.
def ensuring(cond: (Dynamic) => Boolean, msg: => Any): Dynamic
- Неявный
- Этот член добавлен неявным преобразованием из Dynamic вEnsuring[Dynamic] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Dynamic) => Boolean): Dynamic
- Неявный
- Этот член добавлен неявным преобразованием из Dynamic вEnsuring[Dynamic] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Dynamic
- Неявный
- Этот член добавлен неявным преобразованием из Dynamic вEnsuring[Dynamic] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): Dynamic
- Неявное
- Этот член добавлен в результате неявного преобразования из Dynamic в Ensuring[Dynamic] методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def equals(arg0: Any): Boolean
Сравнивает текущий объект (this) с объектом-аргументом (that) на эквивалентность.
Любое реализующее этот метод должно быть отношением эквивалентности:
-
Он является рефлексивным: для любого экземпляра
x типа Any, x.equals(x) должно возвращать true.Он является симметричным: для любых экземпляров x и y типа Any, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Он является транзитивным: для любых экземпляров x, y и z типа Any, если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должно возвращать true. Если вы переопределяете этот метод, убедитесь, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode, чтобы гарантировать, что объекты, которые "равны" (o1.equals(o2) возвращает true). имеют одинаковые хэш-коды scala.Int. (o1.hashCode.equals(o2.hashCode)).
- возвращает
trueесли текущий объект эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- Any
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной format строкой. Форматные строки соответствуют String.format (@см. java.lang.String.format).
- Неявное
- Этот член добавлен в результате неявного преобразования из Dynamic в StringFormat[Dynamic] методом StringFormat в scala.Predef.
- Определяющие классы
- StringFormat
- Аннотации
- @inline()
def hashCode(): Int
Вычисляет значение хэш-кода для объекта.
Стандартный алгоритм хэширования зависит от платформы.
Важно понимать, что два объекта могут иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) и при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация могла бы всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true). то у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода убедитесь, что поведение согласуется с методом equals.
- возвращает
значение хэш-кода для этого объекта.
- Определяющие классы
- Any
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип получаемого объекта T0.
Обратите внимание, что результат проверки зависит от стирания типов в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания типа во время компиляции, проверить, являются ли элементы списка указанного типа, невозможно.
- возвращает
trueесли получаемый объект является экземпляром стёртого типаT0;falseв противном случае.
- Определяющие классы
- Any
def toString(): String
Возвращает строковое представление объекта.
Стандартное представление зависит от платформы.
- возвращает
строковое представление объекта.
- Определяющие классы
- Any
© 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/Dynamic.html
Маркерный трейт, который позволяет выполнять динамические вызовы. Экземпляры
xэтого трейта позволяют вызывать методыx.meth(args)с произвольными именами методовmethи списками аргументовargs, а также получать доступ к полямx.fieldс произвольными именамиfield.Если вызов не поддерживается напрямую
x(т. е. если проверка типов завершается ошибкой), он переписывается в соответствии со следующими правилами:foo.method("blah") ~~> foo.applyDynamic("method")("blah") foo.method(x = "blah") ~~> foo.applyDynamicNamed("method")(("x", "blah")) foo.method(x = 1, 2) ~~> foo.applyDynamicNamed("method")(("x", 1), ("", 2)) foo.field ~~> foo.selectDynamic("field") foo.varia = 10 ~~> foo.updateDynamic("varia")(10) foo.arr(10) = 13 ~~> foo.selectDynamic("arr").update(10, 13) foo.arr(10) ~~> foo.applyDynamic("arr")(10)Начиная со Scala 2.10, определение прямых или косвенных подклассов этого трейта возможно только в том случае, если функция языка
dynamicsвключена.