问题标签 [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.
scala - scala隐式导致StackOverflowError
这个隐含的 val 如何导致 StackOverFlowError?
(削减了我的原始代码,仍然导致错误)
我在做一些非法的隐含行为吗?
java - Integrating scala with java
I'm new to Scala. I need help in resolving this issue.
I have built a project which is written in Scala and I'm trying to integrate it with a Java project. I have taken the dependency on the build scala jar in my Java project in eclipse.
However when I call a method in the Scala jar I get ClassCastException
when running the application:
Below is the exception I get
Exception in thread "main" java.lang.ClassCastException: com.rockymadden.stringmetric.phonetic.MetaphoneAlgorithm cannot be cast to com.rockymadden.stringmetric.StringFilter at com.rockymadden.stringmetric.phonetic.MetaphoneAlgorithm.compute(MetaphoneAlgorithm.scala:10) at org.gobe.search.dictionary.test.PhoneticTest.main(PhoneticTest.java:16)
What can I do to fix this ?
In the above code "MetaphoneMetric" , "DummyImplicit" are part of Scala Jar I generated.
Logic of Metaphone algorithm can be found at http://pastebin.com/d7CXjDtx
scala - 包装部分应用的构造函数的 Scala 类 - 如何使用它来创建 API 方法?
我正在尝试创建一个简单的 api 来处理时间间隔。(我知道joda time,我不想重新发明它。这是一个练习)。
我想要实现的是:
(1)
(2)
我已经设法实现(1),如下所示:(忽略toString,Ordered trait,aso)
但是,我不知道如何实现(2)(即:Interval.forMinutes)。
似乎无法解决这个问题。
这个“HalfInterval”包装器是否Time => Interval
有意义?
我根据经验设计了它——只是为了让from(..).to(..)
调用按计划工作——而不是考虑到一些功能概念模型。
有没有更好的方法来实现这个api?
谢谢
scala - 可以通过委托来满足 scala 自我类型吗?
假设我有(这是相当做作的)
有没有办法避免在 new Query() 创建中出现多余的“override val dbName = self.dbName, override val dbHost = self.dbHost”,而是指示新的 Query 对象应该继承自/委托给 HasADbConnection 实例对于这些领域?
我意识到 Query 将 DbConnection 作为构造函数参数可能更合适。我对满足 Query 自类型的其他方式感兴趣。也许没有办法将 HasADbconnection 字段传播到新的 Query 实例上,这是一个完全有效的答案。
scala - 我可以告诉 scala 如何更喜欢更具体的隐式,而不是给出“模棱两可的隐式”错误吗?
下面的代码给出了一个错误。
错误:
在我的真实代码中,显式传递隐式参数并不是那么简单。有没有办法告诉它总是更喜欢SubWriter
,BaseWriter
因为前者更具体?无需手动传递它foo(sub)(SubWriter)
吗?
scala - 带有隐式的scala用户定义文字
我真的很喜欢 Scala 的灵活性和简洁性。有了这个金额的定义:
您可以轻松创建实例:
使用范围内的以下定义会更容易:
我的问题是:有没有办法可以做到以下几点:
没有为每种货币(欧元、美元、...)定义函数?
scala - 具有两个通用参数的上下文边界
在 Scala 中,我可以使用上下文边界:
意思是一样的:
如果我有一个带有两个泛型参数的类怎么办。即我希望能够确保我有一个Writer[T, String]
. 是否有可以使用上下文边界 ( T : ...
) 的语法,或者我是否需要显式地使用隐式(写起来很有趣)。
scala - 为递归和嵌套类型结构定义隐式转换
我定义了以下类 PositionSpace,它具有嵌套类 Position 和 SubPositionSpace。SubPositionSpace 本身既是 Position 又是 PositionSpace(因此它是一个也定义了自己的位置的位置)。我已经定义了一个包装类 SubPosition,以便任何类型为 x.SubPositionSpace#Position 的对象(对于任何作为 PositionSpace 的对象 x)都可以用作类型为 x.Position 的对象。但是,我想让这种转换隐含,这就是我卡住的地方。从逻辑上讲,这应该是可能的。但是,我不知道在哪里或如何定义转换以便编译器找到它,这让我很头疼。
下面是我的代码。请注意,我已在底部添加了测试用例。
到目前为止我遇到的障碍
路径相关类型
部分问题似乎是这种转换涉及依赖于路径的类型,其中输入类型和输出类型使用相同的路径。但是,没有语法可以编写带有类型签名的方法x.Position => y.Position where y : PositionSpace and x : y.SubPositionSpace.
通过添加附加参数以传递路径(如下所示)很容易解决问题,但是您不能向隐式转换方法添加附加参数(如果你希望它们被这样使用)。
scala - Scala 喷雾客户端为 AKKA ActorRefFactory 定义隐式
我正在尝试使用 Scala 和 spray-client 编写一个简单的 HTTP 客户端。我的客户基于Spray docs上给出的示例。
我的问题是该示例正在创建一个新的隐式ActorSystem 即
但我希望我的客户端是可重用的,而不是创建一个新的 ActorSystem。
这是我的代码的要点。
但是我收到两个关于隐式的编译器错误
和
我应该如何更改 API 定义?
scala - Lift、squeryl 记录和 scala 隐式:添加新方法来记录,扩展 AnyVal
我想为 Squeryl Record(Lift Web 框架)添加其他方法。该方法名为 validateTry。请参阅下面的代码
它按预期工作。但我想扩展 AnyVal,像这样
因为在我看来它将是“正确的”(我认为它应该对性能产生影响)。但是在我添加了“扩展 AnyVal”之后,我收到了错误“值类需要恰好有一个公共 val 参数”。这是什么以及如何解决?(我真的需要修复吗?)
谢谢。
UPD。我在构造函数定义中添加了“val”,它开始工作。感谢 Vasya Novikov 给我的链接。正确的代码如下所示:
它按预期工作。文档说它应该避免如我所见的类的实例化。链接是http://docs.scala-lang.org/overviews/core/value-classes.html