-
1 votesanswersviews
Scala模式匹配类型参数
我想摆脱这个示例代码的类型擦除警告: val a: Seq[Any] = Seq(1) a match { case b: Seq[Int] => b.map(c => println(2 * c) ) case _ => println("Not matched") } 它编译并正常工作,但有一个警告: 警告:(31,13)类型模式中的非变量类型... -
0 votesanswersviews
Scala类型参数语法
(TL; DR查看底部代码段及其下方的错误) 好吧所以我相信我有一个简单的问题,但我是Scala的新手并且看不到它 . 项目摘要:我正在创建一个包含内部类Builder的AbstractRoad类 . 其他课程将扩展这一类,如高速公路,他们也将有建设者 . AbstractRoad有一个类型参数A,可以是扩展AbstractRoad的类中的任何构建器 . 这样我在AbstractRoad#Buil... -
5 votesanswersviews
如何将类型参数传递给泛型类构造函数引用?
假设以下代码: class ConstructMe<T> {} data class Test<T> constructor(var supplier: () -> ConstructMe<T>) {} fun main(args: Array<String>) { works<Int>() breaks<I... -
4 votesanswersviews
在Scala中,是否可以“定义”def的类型参数?
假设我有一个带有多个类型参数的def: def foo[A, B, C](b: B, c: C)(implicit ev: Writer[A]) 但是,预期用法是应推断类型参数 B 和 C (基于传入的参数) . 调用者只需要明确指定 A (例如,编译器选择适当的隐式) . 不幸的是,Scala只允许调用者指定所有类型参数或不允许任何类型参数 . 从某种意义上说,我希望咖喱的类型参数: def f... -
3 votesanswersviews
是否可以在静态字段上使用显式成员约束?
使用F#,我有以下(简化),工作正常: type MyInt = struct val Value: int new v = { Value = v } end static member inline name() = "my_int" // relevant line let inline getName (t... -
4 votesanswersviews
了解F#内联和静态解析的类型参数:F#cast示例
具有静态解析通用参数的F#内联函数似乎与C的模板类似 . 但是,与C不同,您需要指定约束 - 这是如何工作的? 例如,我正在尝试实现向上转换功能,但这不起作用: let inline myUpcast< ^a, ^b when ^a :> ^b > (x: ^a) : ^b = x 错误消息为:错误FS0698:无效约束:用于约束的类型是密封的,这意味着约束只能通过最多... -
0 votesanswersviews
Scala类型参数作为内射映射
有一些类型 T 和抽象类 X[T] ,重点是,对于每个具体类型T,如果定义,只有 X[T] 的一个子类,例如 IntX extends X[Int] ,这是 X[T] 与 T = Int 的唯一子类 . 也就是说,理论上我们对某些类型的集合有一个内射映射 T -> X[T] . 我们来看看两个简单的定义: trait Context[T] { type XType <: X[... -
2 votesanswersviews
抽象类型与类型参数 - 区别在哪里? [重复]
可能重复:Scala:抽象类型与泛型 第20.6节“Scala编程”的“抽象类型”解释了抽象类型的使用,其示例以下面的结果代码结束: class Food abstract class Animal { type SuitableFood <: Food def eat(food: SuitableFood) } class Grass extends Food class C... -
11 votesanswersviews
scala类构造函数和抽象类型
我想使用抽象类型而不是类型参数 . 在我的泛型类构造函数中,我想要一个泛型类型的参数,但代码不能编译: class SomeOtherClass(val s: S){ type S } scala编译器错误“找不到:类型S” 如果我使用类型参数而不是抽象类型,那么它的工作原理如下: class SomeClass[T](val t: T){ //... } 如果我想在构造函数中... -
6 votesanswersviews
F#中的静态解析类型参数无法按预期解析,或者:无法传播类型参数?
TLDR:如何在F#中重复/传播静态类型参数?对于下面的示例函数,我无法使其工作 . 这里's a minimal (I think) version that exemplifies what I' m试图实现(即,一种基于类型上的静态已知的 MinValue 和 MaxValue 属性的存在来测试值的范围的方法): type MyByte = MyByte of byte with s... -
7 votesanswersviews
理解Scala中的“推断类型参数不符合类型参数边界”错误
我无法理解为什么我得到“推断类型参数不符合类型参数边界” . 首先,我定义了一个称为CS的特征,它可以由几个类(例如,CS01和CS02)实现: trait CS[+T <: CS[T]] { this: T => def add: T def remove: T } class CS01 extends CS[CS01] { def add: CS01 = new ... -
13 votesanswersviews
关于此Scala模式匹配中未经检查的类型参数的警告?
这个文件: object Test extends App { val obj = List(1,2,3) : Object val res = obj match { case Seq(1,2,3) => "first" case _ => "other" } println(res)...