Вопросы по теме 'structural-typing'
Забавное наблюдение о (рекурсивных) структурных типах в Scala
Мне нужен был рекурсивный структурный тип в каком-то фрагменте кода с использованием признаков и структурного типа в качестве ограничения параметра типа. Он работал нормально, но позже я узнал, что Scala не поддерживает рекурсивные структурные типы....
1343 просмотров
schedule
16.11.2021
Почему интерфейсы должны быть объявлены на Java?
Иногда у нас есть несколько классов, которые имеют некоторые методы с одинаковой сигнатурой, но не соответствуют объявленному интерфейсу Java. Например, и JTextField , и JButton (среди нескольких других в javax.swing.* ) имеют метод
public...
766 просмотров
schedule
24.10.2021
Структурная типизация и полиморфизм - добавление супертипов
Ниже приведен пример кода (полиморфный), взятый из angular framework с использованием синтаксиса TypeScript,
export abstract class AbstractControlDirective {
...
}
AbstractControlDirective подтипы
export abstract class...
300 просмотров
schedule
30.10.2021
Создание расширенного типа из класса case с помощью Shapeless в Scala
У меня есть этот пример кода:
import java.util.UUID
import shapeless.LabelledGeneric
import shapeless.record._
import shapeless.syntax.singleton._
object LabelTest extends App {
case class IncomingThing(name: String, age: Int)
case class...
321 просмотров
schedule
28.11.2021
Как использовать структурный тип с универсальными параметрами?
У меня два кейса
case class StringCaseClass(argument: String)
case class IntCaseClass(argument: Int)
Я хочу определить структурный тип, который будет соответствовать сопутствующему объекту обоих этих
type HasApply1 {
def apply[A,...
853 просмотров
schedule
27.03.2022
Почему этот статически типизированный доступ к члену думает, что это геттер?
rvm — это объект, а не функция.
Почему ограничение (^b:(member ReportSubTitle:(String -> unit)) rvm ) появляется как геттер, а не сеттер? Это проблема всплывающей подсказки или что-то еще?
Везде, где я использовал статически...
139 просмотров
schedule
08.05.2022
Уточнение структурного типа и равенство типов
Я наткнулся на загадочное поведение Type.=:= при применении к уточнениям типа. Учитывать:
import reflect.runtime.universe._
type T1 = AnyRef {
def apply( name: String ): Unit
def foo: String
}
type Base = { def apply( name: String ): Unit...
207 просмотров
schedule
27.05.2022
Как использовать структурные типы в вызовах isInstanceOf?
Название в основном говорит об этом.
Есть ли способ использовать тип e. г. new Object {def foo = "bar"} в isInstanceOf[<structural_type_here>] звонке?
282 просмотров
schedule
09.10.2023
принимать несколько типов для параметра в scala
У меня есть два объекта, ObjectA и ObjectB, оба с методом update (). Я хочу написать функцию, которая принимает ObjectA или ObjectB (но не другие типы). Концептуально это то, что я пытаюсь сделать:
def doSomething[T <: ObjectA | T <:...
10216 просмотров
schedule
20.12.2022
Почему здесь не работает вывод типов?
Эта проблема возникла в модуле, который я пишу, но я сделал минимальный случай, который демонстрирует такое же поведение.
class Minimal[T](x : T) {
def doSomething = x
}
object Sugar {
type S[T] = { def doSomething : T }
def apply[T, X...
445 просмотров
schedule
11.11.2022
Получение java.lang.NoSuchMethodException в структурной типизации AnyVal
У меня есть следующий фрагмент, который (я думаю) определяет метод addNumber1(x:T):T для универсального типа T , который является подтипом AnyVal и имеет метод +(s:Int):T .
def addNumber1[T <: AnyVal {def +(s:Int):T}](x:T):T = {x + 1}...
168 просмотров
schedule
06.01.2023
Связана ли потеря информации потока со структурным подтипом, присущим этому виду полиморфизма?
Структурное подтипирование в потоке может привести к потере информации:
type O = {x: number, y: number};
type P = {x: number, y: number, z: number}
function f(o: O) {
return o.x * 2, o.y * 2, o;
}
const p: P = {x: 2, y: 3, z: 100};
const r =...
160 просмотров
schedule
19.10.2022
Сопоставление структурных типов с образцом в Scala
Почему это печатает wtf? Сопоставление с образцом не работает со структурными типами?
"hello" match {
case s: { def doesNotExist(i: Int, x: List[_]): Double } => println("wtf?")
case _ => println("okie dokie")
}
4011 просмотров
schedule
05.02.2024