-
理解Scala中的“推断类型参数不符合类型参数边界”错误
所属栏目:[安全] 日期:2020-12-16 热度:195
我无法理解为什么我得到“推断类型参数不符合类型参数边界”. 首先,我定义了一个称为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 CS01[详细]
-
替代在构造函数中执行大量计算 – scala
所属栏目:[安全] 日期:2020-12-16 热度:137
我正在学习一个新项目的 scala,尽可能地追求不变性和功能风格. 我正在创建的对象之一在其构造函数中接受了大量输入,然后重复应用大量计算来生成相关输出,这些输出作为字段存储在对象上. 在执行计算并将其结果内部添加到可变ListBuffer时,关于该对象的所有其[详细]
-
scala – IntelliJ:“SBT Console”和“SBT Shell”有什么区别
所属栏目:[安全] 日期:2020-12-16 热度:105
在IntelliJ中,我看到两个工具窗口:SBT控制台和SBT Shell.这些工具有什么区别? 解决方法 您可能已经安装了scala和sbt插件.较新版本的scala插件有sbt作为其中的一部分. sbt控制台是sbt插件 – 点击开始你将进入sbt交互模式. sbt shell是scala插件的一部分,类[详细]
-
将验证与scalaz 7相结合
所属栏目:[安全] 日期:2020-12-16 热度:118
鉴于以下功能: def foo( a: A ): ValidationNEL[String,Seq[B]] = ...def bar( b: B ): ValidationNEL[String,C] = ... 我想将它们组合起来构建一个函数,调用foo然后最终调用生成的Seq中的每个元素上的bar,这样得到一个ValidationNEL [String,Seq [C]]: de[详细]
-
Scala演员异常“对属于其他演员的频道作出反应”
所属栏目:[安全] 日期:2020-12-16 热度:153
给出以下代码: class A extends Actor { def act() { loop { reactWithin(1000) { case _ = println("A Message") } } }} 和 class B extends A { val test = Actor.actor { loop { reactWithin(1000) { case "B" = println("B Message") } } }} 创建B val[详细]
-
Scala延续的正式定义
所属栏目:[安全] 日期:2020-12-16 热度:192
有一些关于 Scala延续的问题( here和 here).但答案只是试图解释它.所以在这个问题中,我要求正确定义什么(Scala的)分隔的延续.我不需要一个例子(虽然它可能会有所帮助)并要求一个简单易懂的形式化,如果它有帮助,甚至可能忽略输入. 形式化应该涵盖语法(不是在[详细]
-
斯卡拉 – 阿卡 – 共同服务行为者:识别或扩展
所属栏目:[安全] 日期:2020-12-16 热度:131
可以说我有一些其他演员服务层演员常用的.例如,存储和检索域对象的注册表服务: case class DomainObject(id: UUID)class Registry extends akka.actor.Actor { def receive: Receive = { case o: DomainObject = store(o) // save or update object case id[详细]
-
如何将Haskell翻译成Scalaz?
所属栏目:[安全] 日期:2020-12-16 热度:167
我的一个高中生和我将尝试将一个 Haskell的Parsec解析器组合库移植到 Scala中. (它比 Scala的内置解析库更有优势,你可以相当容易地传递状态,因为所有的解析器都是monad.) 我遇到的第一个故障是试图弄清楚Functor在scalaz中的工作原理.有人可以解释如何转换此[详细]
-
scala – 测试副作用monad的定律
所属栏目:[安全] 日期:2020-12-16 热度:61
我正在编写一个库来通过API访问Web服务.我已经定义了简单的类来表示API动作 case class ApiAction[A](run: Credentials = Either[Error,A]) 和一些执行Web服务调用的函数 // Retrieve foo by iddef get(id: Long): ApiAction[Foo] = ???// List all foo'sdef[详细]
-
scala – 无形:尝试按类型限制HList元素
所属栏目:[安全] 日期:2020-12-16 热度:140
问题1 – 基本LUBConstraints 我第一次尝试使用现有的LUBConstraints失败,因为缺少证据(参见下面的代码块).任何暗示为什么?空列表不是有效的长列表吗?没有元素违反约束. import shapeless.ops.coproductimport shapeless.{::,:+:,Coproduct,HNil,HList}obj[详细]
-
scala – 如何引用play framework 2的标准ActorSystem?
所属栏目:[安全] 日期:2020-12-16 热度:198
我希望使用akka的调度程序,例子说: system.scheduler.scheduleOnce() 但是没有关于“系统”应该来自哪里的真实信息.文档有点肤浅,并且有很多变化(akka从核心scala中移出). 如果我写 val system = akka.actor.ActorSystem("system") 我将有一个ActorSystem,[详细]
-
斯卡拉得到案件类的领域和类型
所属栏目:[安全] 日期:2020-12-16 热度:109
所以我试图在一个案例类中得到字段及其类型.目前我这样做 typeOf[CaseClass].members.filter(!_.isMethod).foreach{ x = x.typeSignature match { case _:TypeOfFieldInCaseClass = do something case _:AnotherTypeOfFieldInCaseClass = do something }} 问[详细]
-
当方法以看似无关的方式重载时,为什么scala无法编译?
所属栏目:[安全] 日期:2020-12-16 热度:199
class A {}class B extends A {}object Sample { def foo(a: Set[A]) { println("Hi Set[A]") } // def foo(a: String) { // println("Hi A") // }}Sample.foo(Set(new B())) 上面的代码与scala愉快地运行.但是,当我取消注释foo(a:String)时,代码无法编译:[详细]
-
scala – 是否有适用于Lift的CMS?
所属栏目:[安全] 日期:2020-12-16 热度:61
我正试图在Lift中开发一种社交网络形式,有人可以提出一个很好的起点,而不是重新发明(大部分)轮子,例如用户管理?有CMS可用吗? 谢谢! 解决方法 大卫波拉克有一个名为Hoisted的CMS解决方案.您可以找到它 here和 here.对于用户管理系统,您必须使用lift的身份[详细]
-
scala – 为什么在Spark中聚合和折叠两个不同的API?
所属栏目:[安全] 日期:2020-12-16 热度:72
使用 Scala标准库时,我可以做这样的事情: scala val scalaList = List(1,2,3)scalaList: List[Int] = List(1,3)scala scalaList.foldLeft(0)((acc,n)=acc+n)res0: Int = 6 从许多Int中取出一个Int. 我可以这样做: scala scalaList.foldLeft("")((acc,n)=ac[详细]
-
scala – 为什么这个Spark示例代码不会加载到spark-shell中?
所属栏目:[安全] 日期:2020-12-16 热度:50
下面的示例代码来自Advanced Analytics with Spark一书.当我将它加载到spark- shell(版本1.4.1)时,它会给出以下错误,表明它找不到StatCounter: import org.apache.spark.util.StatCounterconsole:9: error: not found: type StatCounter val stats: StatCou[详细]
-
Scala Liftweb – 模式类型与预期类型不兼容
所属栏目:[安全] 日期:2020-12-16 热度:75
我正在尝试使用以下函数检查某个网页是否已启动: import net.liftweb.common.{Failure,Empty,Full,Box} // 1 // 2def isAlive = { // 3 httpClient.getAsString("http://www.google.com",Nil) match { // 4 case f : Full[String] = true // 5 case f : Fai[详细]
-
scala – 泛型类型的隐式转换?
所属栏目:[安全] 日期:2020-12-16 热度:99
考虑到这个功能: def justTrue[T,S](seq: S)(implicit ev: S : Seq[T]) = truejustTrue(List(1,2,3)) true 有用.但为什么不能将相同的签名用作隐式转换? implicit class TruthTeller[T,S](seq: S)(implicit ev: S : Seq[T]) { def justTrue = true}List(1,[详细]
-
Scala XML API:为什么允许NodeSeq作为属性值?
所属栏目:[安全] 日期:2020-12-16 热度:126
似乎属性值是Seq [Node]类型. scala a b="1"/.attribute("b") res11: Option[Seq[scala.xml.Node]] = Some(1) 这意味着您可以将XML指定为属性值. scala a b={zx//z}/.attribute("b") res16: Option[Seq[scala.xml.Node]] = Some(zx/x/z)scala a b={zx//z}/.a[详细]
-
scala – 无法从伴随对象访问伴随类的方法
所属栏目:[安全] 日期:2020-12-16 热度:68
我以为我可以从我的伴侣对象访问伴侣类的每个方法.但我不能? class EFCriteriaType(tag:String) extends CriteriaType{ // implemented method of CriteriaType def getTag = this.tag }object EFCriteriaType{ var TEXT: CriteriaType = new EFCriteriaTyp[详细]
-
scala – 为什么与tuple类型的提取器一起使用的for-comprehensio
所属栏目:[安全] 日期:2020-12-16 热度:96
给出以下代码snippelt: import scala.util.Trydef foo(x:Int) : (Int,String) = { (x+1,x.toString)}def main(args: Array[String]) : Unit = { val r1: Try[(Int,String)] = for { v - Try { foo(3) } } yield v val r2: Try[(Int,String)] = for { (i,s)[详细]
-
为什么如果我在Scala中扩展App特性,我会覆盖main方法?
所属栏目:[安全] 日期:2020-12-16 热度:78
所以我读到App trait有以下字段: def delayedInit(body: ? Unit): Unitval executionStart: Longdef main(args: Array[String]): Unit 我知道如果一个特征只有一个方法,通过在类声明中的花括号之间“放置代码”,我将覆盖它.但在这里我有两种方法.那么为什么[详细]
-
使用反射获取在Scala中实现特征的所有类
所属栏目:[安全] 日期:2020-12-16 热度:113
我想列出实现特定特征的所有案例类.我目前正在使用 Clapper ClassUtil这样做.我能够获得直接实现特征的案例类.但是,我无法获得其他没有直接实现特征的类.如何获得直接或间接实现特征的所有类. ? val finder = ClassFinder()finder.getClasses().filter(_.is[详细]
-
Scala:指定覆盖受保护方法的公共方法
所属栏目:[安全] 日期:2020-12-16 热度:93
我正在编写一个特性,应该指定返回CloneResult的方法clone,如下所示: trait TraitWithClone extends Cloneable { def clone: CloneResult} 这里的目的是将java.lang.Object的clone()的返回类型收紧到对此接口有用的东西.但是,当我尝试编译它时,我得到: erro[详细]
-
scala – 具有重复参数的磁铁模式(varargs)
所属栏目:[安全] 日期:2020-12-16 热度:95
是否可以使用 magnet pattern与varargs: object Values { implicit def fromInt (x : Int ) = Values() implicit def fromInts(xs: Int*) = Values()}case class Values()object Foo { def bar(values: Values) {}}Foo.bar(0)Foo.bar(1,2,3) // ! "error: t[详细]