Spec-Zone.ru › Scala 3.1

Особенность scala.Selectable

Объект-компаньон • Исходный код

trait Selectable

Маркерный интерфейс для объектов, поддерживающих структурный выбор через selectDynamic и applyDynamic

Классы-реализации должны определять или предоставлять в качестве расширяющих методов следующие две сигнатуры методов:

def selectDynamic(name: String): Any def applyDynamic(name: String)(args: Any*): Any =

selectDynamic вызывается для простых выборов v.m, а applyDynamic вызывается для выборов с аргументами v.m(...). Если существует только один вид выбора, метод, поддерживающий другой, может быть опущен. Метод applyDynamic также может иметь второй список параметров java.lang.Class аргументов, т.е. он может иметь альтернативную сигнатуру

def applyDynamic(name: String, paramClasses: Class[_]*)(args: Any*): Any

В этом случае вызов будет синтезировать Class аргументы для стирания всех формальных типов параметров метода в структурном типе.

Супертипы
класс Any
Известные подтипы
интерфейс WithoutPreciseParameterTypes
интерфейс Selectable

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Selectable.html

Spec-Zone.ru

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