Spec-Zone.ru › Scala 2.13 Library

Annotation scala.noinline

final class noinline extends Annotation with StaticAnnotation

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

Обратите внимание, что по умолчанию оптимизатор Scala отключен, и никакие места вызова не встраиваются. См. -opt:help для получения информации о том, как включить оптимизатор и встраиватель.

При включенном встраивании встраиватель никогда не будет встраивать методы или места вызова, помеченные @noinline.

Примеры:

@inline   final def f1(x: Int) = x
@noinline final def f2(x: Int) = x
          final def f3(x: Int) = x

 def t1 = f1(1)              // inlined if possible
 def t2 = f2(1)              // not inlined
 def t3 = f3(1)              // may be inlined (the inliner heuristics can select the callsite)
 def t4 = f1(1): @noinline   // not inlined (override at callsite)
 def t5 = f2(1): @inline     // inlined if possible (override at callsite)
 def t6 = f3(1): @inline     // inlined if possible
 def t7 = f3(1): @noinline   // not inlined
}

Примечание: скобки необходимы при аннотировании места вызова в более крупном выражении.

def t1 = f1(1) + f1(1): @noinline   // equivalent to (f1(1) + f1(1)): @noinline
def t2 = f1(1) + (f1(1): @noinline) // the second call to f1 is not inlined
Source
noinline.scala
Линейные супертипы
StaticAnnotation, Annotation, AnyRef, Any

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

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

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

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

Неявный
Этот член добавлен неявным преобразованием из noinline в ArrowAssoc[noinline] выполненным методом 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[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не указано SLS в качестве члена AnyRef

def ensuring(cond: (noinline) => Boolean, msg: => Any): noinline

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

def ensuring(cond: (noinline) => Boolean): noinline

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

def ensuring(cond: Boolean, msg: => Any): noinline

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

def ensuring(cond: Boolean): noinline

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

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).

Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых не-null экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого не-null экземпляра 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: AnyRef): Boolean

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

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

возвращает

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

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

def finalize(): Unit

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

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

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

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

def formatted(fmtstr: String): String

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

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

final def getClass(): Class[_ <: AnyRef]

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

возвращает

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

Определяющие классы
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(classOf[java.lang.InterruptedException])

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

Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

© 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/noinline.html

Spec-Zone.ru

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