Spec-Zone.ru › Scala 2.12 Library

Трейт scala.Dynamic

trait Dynamic extends Any

Маркерный трейт, который позволяет выполнять динамические вызовы. Экземпляры 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.

Source
Dynamic.scala
Линейные супертипы

Абстрактные члены-значения

abstract def getClass(): Class[_]

Возвращает представление класса объекта во время выполнения.

returns

объект класса, соответствующий типу получателя во время выполнения.

Definition Classes
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), имеют одинаковые хеш-коды (o1.hashCode.equals(o2.hashCode)).

returns

true если объект-получатель эквивалентен аргументу; false в противном случае.

Definition Classes
Any

def formatted(fmtstr: String): String

Возвращает строку, отформатированную согласно заданной format строке. Строки форматирования аналогичны строкам форматирования String.format (@см. java.lang.String.format).

Implicit
Этот член добавлен неявным преобразованием из Dynamic в StringFormat[Dynamic] выполняемого методом StringFormat в scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()

def hashCode(): Int

Вычисляет хеш-код объекта.

Алгоритм хеширования по умолчанию зависит от платформы.

Обратите внимание, что для двух объектов допускается иметь идентичные хеш-коды (o1.hashCode.equals(o2.hashCode)) при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация могла бы всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были идентичные хеш-коды (o1.hashCode.equals(o2.hashCode)). Следовательно, при переопределении этого метода, убедитесь, что поведение согласуется с методом equals.

returns

значение хеш-кода для этого объекта.

Definition Classes
Any

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 toString(): String

Возвращает строковое представление объекта.

Представление по умолчанию зависит от платформы.

returns

строковое представление объекта.

Definition Classes
Any

def →[B](y: B): (Dynamic, B)

Implicit
Этот член добавлен неявным преобразованием из Dynamic в ArrowAssoc[Dynamic] выполняемого методом ArrowAssoc в scala.Predef.
Definition Classes
ArrowAssoc

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/Dynamic.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API