Spec-Zone.ru › Scala 2.12 Library

Класс scala.annotation.tailrec

final класс tailrec extends Annotation с StaticAnnotation

Аннотация для метода, проверяющая, что метод будет скомпилирован с оптимизацией хвостовой рекурсии.

Если она присутствует, компилятор выдаст ошибку, если метод не может быть оптимизирован в цикл.

Источник
tailrec.scala
С

2.8

Линейные супертипы

Конструкторы экземпляров

новый tailrec()

Члены-значения

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

возвращает

true если !(this == that), иначе false.

Определяющие классы
AnyRef → Any

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел он возвращает значение хэша, которое соответствует равенству значений: если два экземпляра типа значения сравниваются как true, то ## будет генерировать одно и то же значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode выбрасывает NullPointerException.

возвращает

значение хэша, согласованное с ==

Определяющие классы
AnyRef → Any

def +(other: String): String

Неявный
Этот член добавлен неявным преобразованием из tailrec в any2stringadd[tailrec] с помощью метода any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

def ->[B](y: B): (tailrec, B)

Неявный
Этот член добавлен неявным преобразованием из tailrec в ArrowAssoc[tailrec] с помощью метода 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 в противном случае.

Определяющие классы
AnyRef → Any

final def asInstanceOf[T0]: T0

Привести объект получателя к типу T0.

Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] вызовет ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, являются ли содержимое списка требуемого типа.

возвращает

объект получателя.

Определяющие классы
Any
Исключения

ClassCastException если объект получателя не является экземпляром стирания типа T0.

def clone(): AnyRef

Создать копию объекта получателя.

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

возвращает

копию объекта получателя.

Атрибуты
protected[lang]
Определяющие классы
AnyRef
Аннотации
@throws( ... ) @native()
Примечание

не определен в SLS как член AnyRef

def ensuring(cond: (tailrec) ⇒ Boolean, msg: ⇒ Any): tailrec

Неявный
Этот член добавлен неявным преобразованием из tailrec в Ensuring[tailrec] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: (tailrec) ⇒ Boolean): tailrec

Неявный
Этот член добавлен неявным преобразованием из tailrec в Ensuring[tailrec] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean, msg: ⇒ Any): tailrec

Неявный
Этот член добавлен неявным преобразованием из tailrec в Ensuring[tailrec] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean): tailrec

Неявный
Этот член добавлен благодаря неявной конвертации из tailrec в Ensuring[tailrec] с помощью метода Ensuring в scala.Predef.
Классы определений
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).

возвращает

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

Классы определений
AnyRef

def equals(arg0: Any): Boolean

Метод равенства для ссылочных типов. Реализация по умолчанию делегирует вызов eq.

См. также equals в scala.Any.

возвращает

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

Классы определений
AnyRef → Any

def finalize(): Unit

Вызывается сборщиком мусора для объекта-получателя, когда к нему больше нет ссылок.

Подробности о том, когда и будет ли вызываться метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[lang]
Классы определений
AnyRef
Аннотации
@throws( classOf[java.lang.Throwable] )
Примечание

не указан SLS как член AnyRef

def formatted(fmtstr: String): String

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

Неявный
Этот член добавлен благодаря неявной конвертации из tailrec в StringFormat[tailrec] с помощью метода StringFormat в scala.Predef.
Классы определений
StringFormat
Аннотации
@inline()

final def getClass(): Class[_]

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

возвращает

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

Классы определений
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

возвращает

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

Классы определений
AnyRef → Any
Аннотации
@native()

final def isInstanceOf[T0]: Boolean

Проверка, является ли динамический тип объекта-получателя T0.

Обратите внимание, что результат проверки производится с учётом стирания типов в Scala. Следовательно, выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стёрся во время компиляции, проверить, являются ли элементы списка указанного типа, невозможно.

возвращает

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

Классы определений
Any

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

final def synchronized[T0](arg0: ⇒ T0): T0

Определение классов
AnyRef

def toString(): String

Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, "@" и хэш-кода объекта в шестнадцатеричном формате.

возвращает

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

Определение классов
AnyRef → Any

final def wait(): Unit

Определение классов
AnyRef
Аннотации
@throws( ... )

final def wait(arg0: Long, arg1: Int): Unit

Определение классов
AnyRef
Аннотации
@throws( ... )

final def wait(arg0: Long): Unit

Определение классов
AnyRef
Аннотации
@throws( ... ) @native()

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

Неявный
Этот член добавлен неявным преобразованием из tailrec в ArrowAssoc[tailrec] с помощью метода ArrowAssoc в scala.Predef.
Определение классов
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/annotation/tailrec.html

Spec-Zone.ru

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