type-parameter相关内容

trait/class 类型参数优先于方法类型参数时的规则是什么

我已经使用 Scala 有一段时间了,我以为我真的开始理解一切(好吧,大多数事情......),但我发现自己对 Map 类中的许多方法定义感到困惑.我知道 foldLeft 等是如何工作的,但让我感到困惑的是 Map 函数中使用的类型参数.我们以 foldLeft 为例: foldLeft [B] (z: B)(op: (B, (A, B)) ⇒ B) : B Map trait 本身的定义采 ..
发布时间:2021-07-15 21:26:35 其他开发

Scala:类型参数中的问号

我正在尝试理解以下代码(来自 Scalaz 库): def kleisliIdApplicative[R]: Applicative[Kleisli[Id, R, ?]] = ... 我假设 T[P0, ?] 形式的类型是一个带参数的类型构造函数.但是,我找不到解释在类型参数中使用问号的文档. 一个相关的问题是问号和下划线有什么区别? 有没有地方记录了所有这些内容? 解决方案 ..
发布时间:2021-07-15 21:08:19 其他开发

暴露来自单例类型的路径依赖类型

我试图让 Scala 为来自单例类型的路径相关类型找到正确的类型. 首先,这里是示例的类型容器和一个实例: trait 容器 {X型def get(): X}val 容器 = 新容器 {类型 X = 字符串def get(): X = ""} 我可以在第一次尝试中看到字符串(所以我已经有了一个工作场景): class WithTypeParam[C 但是当没有类型参数时,这不再起作 ..

类型参数和数字加宽

正如我们所知,我们可以将两个不同的 Numeric 类型的数字相加(减/乘/等),结果将是这两种类型中较宽的一个,无论它们的顺序如何. 33F + 9L//Float + Long == Float33L + 9F//多头 + 浮点数 == 浮点数 这是因为 7 个 Numeric 类(Byte、Short、Char、Int, Long, Float, Double) 有 7 种不同的 +() ..
发布时间:2021-07-15 19:56:49 其他开发

理解 Scala 中的“推断类型参数不符合类型参数边界"错误

我不明白为什么我会收到“推断的类型参数不符合类型参数界限".首先,我定义了一个称为 CS 的特性,它可以由多个类(例如 CS01 和 CS02)实现: trait CS[+T 定义添加:T定义删除:T}类 CS01 扩展 CS[CS01] {定义添加:CS01 = 新 CS01def 删除:CS01 = 新 CS01}类 CS02 扩展 CS[CS02] {定义添加:CS02 = 新 CS02d ..
发布时间:2021-07-15 19:49:24 其他开发

理解 Scala 中的类型参数

我正在尝试理解 Scala 中的类型参数.让我们看下面的一般示例: def func1[T](a : T) : T = a 我知道 func1 接受任何类型的 1 个参数,并返回完全相同类型的参数.我不明白的是为什么: def func1[T] 为什么 [T] 紧跟在 function1 之后??我们可以简单地在 func1 之后不加 [T] 来编写它,例如: def func1(a : ..
发布时间:2021-07-15 19:37:41 其他开发

抽象类型与类型参数

在什么情况下抽象类型应该优先于类型参数? 解决方案 添加到我的先前关于抽象类型与参数的答案,您还有 JESSE EICHAR 最近的博文(2010 年,5 月 3 日)强调了一些主要差异: 特质 C1[A] {定义获取:Adef doit(a:A):A}性状 C2 {A型定义获取:Adef doit(a:A):A} 在C2的情况下,参数被“埋没"(作为内部抽象类型). (除了,正如r ..
发布时间:2021-07-15 19:17:24 其他开发

有没有办法解决未使用的类型参数?

代码: trait Trait{}struct 结构;impl T, U: Trait T结构{} 错误: error[E0207]: 类型参数`T` 不受 impl trait、self 类型或谓词的约束-->src/main.rs:5:6|5 |impl T, U: Trait T结构{}|^ 无约束类型参数 似乎RFC 447 禁止这种模式;有没有办法解决这个问题? ..
发布时间:2021-07-13 21:30:49 其他开发

Scala将类型参数传递给对象

在 Scala v 2.7.7 中 我有一个文件 class Something[T] 扩展其他object 某物扩展了 OtherConstructor[Something] 这会引发错误: class 有些东西接受类型参数 object 某物扩展了 OtherConstructor[Something] { 但是,我不能这样做 object Something[T] ..
发布时间:2021-06-11 19:26:20 其他开发

表达式树中未发生隐式转换

我遇到了一种情况,我需要根据输入对不同属性的自定义类型列表进行排序.借助几篇文章,我得以提出使用LINQ的通用实现.在单元测试期间,其中一项测试失败,因为使用表达式树创建lamda表达式时发生了隐式转换. 下面,我将示例代码理解为该问题(不确定为什么格式不正确,对此感到抱歉) 静态类ExtensionMethods{公共静态IEnumerable对进 ..
发布时间:2021-05-29 21:46:12 C#/.NET