问题标签 [scala-implicits]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
251 浏览

scala - 从 inferImplicitValue 返回的 Scala 语法树无法评估

我正在编写一个 Scala 宏(Scala 2.11),我想在其中使用 获取表示宏内部隐式变量的inferImplicitValue树,评估该语法树,然后使用该值。我实际上已经这样做了,但它似乎并不适用于所有情况[1]。我构建了一个失败的简化示例。

如果我编译上述内容,然后调用它:

我看到编译失败的方式如下:

完整输出: https ://gist.github.com/erikerlandson/df48f64329be6ab9de9caef5f5be4a83

因此,您可以看到它正在为声明的隐式 value 查找树demo.this.demoEvidence,但对该树的评估失败。我已经在我的项目的其他地方看到了这种基本方法。不知道有什么区别,以及为什么在这里失败。

[1] 更新:如果隐式值在(子)项目中定义,并编译,然后在该项目外部使用,它会按预期工作。这就是这种方法对我有用的情况。

所以问题是这是否只是我必须忍受的一个基本约束,或者是否有一些巧妙的解决方法,或者这是否是一个“错误”,可以在宏中推断出可能修复的隐式值。

更新:我为此提交了一个 Scala 问题:https ://github.com/scala/scala-dev/issues/353

0 投票
3 回答
4049 浏览

scala - 在 intellij 中处理错误未使用导入的最佳方法

Intellij 错误地将 Scala 隐式的某些导入标记为未使用。有没有办法防止它在针对特定导入显式优化它们时删除这些导入,而不是阻止整个项目的优化导入?

0 投票
1 回答
29 浏览

scala - Scala 意外编译文件,是否存在隐式转换?

我试图弄清楚为什么下面的类在 Scala 中编译时没有错误。我希望类中的createTestClass方法DoTest会因键入错误而失败,因为它试图提供具有 type 的隐式参数TypeClass[A],但它提供了一个带有 type 的 lambda 而不是这样的实例A => String

这里有一些隐式转换吗?我将如何弄清楚发生了什么?

0 投票
2 回答
812 浏览

scala - 映射到列表头部时理解 Scala Map 对象

您好我有以下数据,想将其映射到第二个参数中的第一项。因此对于:

我想:

当此数据在 RDD 中时,我可以执行以下操作:

但是,当它位于 Map 对象(groupBy 的结果)中时,我得到以下信息:

当我映射到整个列表时,我得到了我所期望的,但当我打电话给它时却没有

如果我执行以下任一操作,我也可以获得我想要的结果:

有人可以解释一下这里发生了什么吗?

0 投票
1 回答
317 浏览

scala - 按类型选择字段

我正在尝试创建一个允许为给定类型选择字段的类型类。这是我到目前为止所做的,但编译器无法找到 Selector.Aux

会这样使用

当只有一个且只有一个 AddressKey 类型的字段时,这应该才有效。关于如何实施它的任何想法?

0 投票
1 回答
419 浏览

scala - Joda Marshalling/Unmarshalling in scala

我正在尝试使用 akka.http.scaladsl.testkit.responseAs 来测试一些端点,但我不知道如何处理 org.joda.time.DateTime 对象的编组/解组过程。例如,考虑下面的案例类:

另外,请考虑以下路线测试:

当我运行“sbt test”时,代码无法编译,抛出以下错误:“找不到akka.http.scaladsl.unmarshalling.FromResponseUnmarshaller[me.archdev.restapi.models.ConfigEntity] 类型的证据参数的隐式值"

我知道该消息非常不言自明,但我仍然不知道如何创建代码抱怨的隐式 FromResponseUnmarshaller。

我的代码基于此示例:https ://github.com/ArchDev/akka-http-rest

我只是在创建一些新实体并尝试玩...

提前致谢。

0 投票
1 回答
883 浏览

scala - Scala 隐式类成员在对象中不可访问

我正在使用 Scala bCrypt包装器来加密用户密码,这个包装器提供了一个隐式类。

但是我面临一个奇怪的问题,每当我在课堂上使用这个隐式转换时,它工作得很好,但转换不适用于对象案例类

我不确定我在这里做错了什么。

0 投票
0 回答
781 浏览

scala - 使用带有隐式参数的泛型方法时不明确的隐式值

在以下代码中:

在 的赋值中x,为什么编译器不能推断 fooImplicitGetter 的类型是Int,因此它需要使用FooInt实例,因为它可以在 的赋值中y?除了明确fooImplicitGetter[Int]传递等之外,还有什么方法可以帮助它吗?FooInt如果重要的话,这低于 2.11。

编辑:这似乎与此处提到的相同问题:Inferring type of generic implicit parameter from return type,所以我修改了我的示例以匹配。我也可以关闭它以进行重复,除非有人有答案。

0 投票
1 回答
109 浏览

scala - 找不到具有下限类型界限的方法参数的隐式转换

我有这个代码:

斯卡拉小提琴

编译期间注释行失败:

有没有办法让它在不指定类型参数或像前两行那样显式使用转换函数的情况下编译?

0 投票
2 回答
1431 浏览

scala - 对象的Scala隐式转换

假设我有以下代码片段:

我想StringCommand没有显式转换的后代进行比较。例如:

Q1:在 Scala 中可以吗?

Q2:我能否定义通用隐式转换,将已知类型(如 String)转换为超类类型(如Command我的情况)?

例如:

PS我知道它不是惯用的Scala,但找到正确的方法会很棒。