type-inference相关内容

为什么 Scala 没有 decltype?

有时可能希望将 x 声明为与 y 相同的类型.使用 vals 类型推断可以很好地处理这个问题,但这在其他一些领域不起作用,比如 使用函数类型. 对于具有一些 C++ 经验的程序员来说似乎显而易见的解决方案是 decltype.当前的 Scala 中似乎没有这样的设施. 对链接问题的回答说明: 因为类型不是一等公民 我不得不承认我不明白这一点.我不认为类型是 C++ 中的一等 ..
发布时间:2021-07-15 20:02:38 其他开发

辅助模式用法在不推断适当类型的情况下编译

考虑以下涉及 Aux-pattern 的简单示例: 密封性状 AdtBase抽象案例类 Foo(){输入 T Scastie 我真的不明白为什么 testBaz 会编译.我也预计类型不匹配. 解决方案 似乎没有深层原因. 因为当您显式指定类型参数时,两种方法都会编译 def testBaz(baz: Baz) = Bar[baz.foo.T](baz.foo)//编译d ..
发布时间:2021-07-15 19:58:46 其他开发

Scala 对重载方法的类型推断

鉴于此代码: class Rational(n: Int, d: Int) {要求(d != 0)私人 val g = gcd(n.abs, d.abs)val 分子 = n/gval 分母 = d/gdef this(n: Int) = this(n, 1)覆盖 def toString = 分子 + "/" + 分母def +(r: Rational) = new Rational(nume ..
发布时间:2021-07-15 19:51:03 其他开发

如何使用一元类型构造函数推断无形状记录值的内部类型?

我无法理解 Shapeless 记录选择器与 Scala 的类型推断交互的方式.我正在尝试创建一种方法,该方法可以通过键从 Shapeless 记录中获取字段,仅当该字段的值具有特定的一元类型构造函数时,在这种特殊情况下 Vector[_],然后从 Vector 中获取推断类型 V 的内部值,在本例中使用 Vector.apply(). 我觉得我很接近.这是有效的,具有 Int 的具体内部类 ..
发布时间:2021-07-15 19:47:42 其他开发

通过调用 toSet 缺少参数类型错误?

尝试从字符列表中生成映射到其频率的唯一字符列表 - 例如类似: List('a','b','a') ->列表(('a',2), ('b',1)) 所以,只是在控制台中乱搞,这是有效的: val l = List('a', 'b', 'c', 'b', 'c', 'a')val s = l.toSets.map(i => (i, l.filter(x => x == i).size)) 但是 ..
发布时间:2021-07-15 19:20:16 其他开发

方法返回类型的类型推断

当方法中使用显式return语句时,为什么Scala无法推断方法的返回类型? 例如,为什么下面的代码会编译? object Main {定义谁 = 5def main(args: Array[String]) = println(who)} 但以下没有. object Main {def 谁 = 返回 5def main(args: Array[String]) = println(w ..
发布时间:2021-07-15 19:17:47 其他开发

Rust 中的左值上下文到底是什么?

根据文档,我们有左值和右值上下文.我如何知道表达式是否在左值上下文中?是否仅由赋值中的表达式一侧决定? 更具体地说,我需要了解何时使用 DerefMut 进行解引用,何时使用 Deref 代替?与 Index 和 IndexMut 相同. 解决方案 您在这里问了两个不同的问题. 更具体地说,我需要了解,何时使用 DerefMut 进行解引用,何时使用 Deref 代替?与 In ..
发布时间:2021-07-13 20:55:09 其他开发

Rust 中闭包和函数的类型推断差异

为什么可以推断闭包表达式的参数类型和返回类型,而不能推断 rust 中的函数? 解决方案 这只是一个设计决定:Rust 使用局部类型推断,而不是全局类型推断.理论上可以进行全局类型推断,但为了便于调试,Rust 有意识地避开了它,因为它会导致极难调试的编译问题(例如,这部分的微小变化会导致内部深处的编译错误). 函数是全局的——因此它们的类型签名必须是显式的. 函数内部的闭包是 ..
发布时间:2021-07-13 20:40:36 其他开发

Rust 的类型推断如何跨多个语句工作?

Rust 在相当高级的情况下执行类型推断.有人可以解释(或指出)描述可以推断和不能推断的规则吗? 第一个很简单:绑定的类型就是绑定表达式的类型: 让 n = 10u32;//和...一样://vvvvv让 n: u32 = 10u32; 下一个更让我惊讶的是:右边的泛型参数是从左边的绑定类型推导出来的: let n: u32 = "10".parse().unwrap();//等同于: ..
发布时间:2021-07-13 20:25:58 其他开发

Scala 程序中的推断类型

Scala REPL 显示了表达式的推断类型.有没有办法知道普通 Scala 程序中的推断类型? 例如, val x = {//一些Scala表达式} 现在我想知道 x 的实际类型. 解决方案 也许 TypeTag 是您要找的吗? scala>导入 scala.reflect.runtime.universe._导入 scala.reflect.runtime.universe ..
发布时间:2021-07-05 18:39:22 其他开发