当我运行测试actor的基础示例时:
class MySpec(_system: ActorSystem) extends TestKit(_system) with ImplicitSender
with WordSpec with MustMatchers with BeforeAndAfterAll {
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
class WordSpec needs to be a trait to be mixed in
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有下一个代码
trait A { val id: Int }
case class B(id: Int) extends A
case class C(id: Int, name: String) extends A
Run Code Online (Sandbox Code Playgroud)
我想为所有类层次结构定义公共镜头:
import shapeless._
import lens._
val idLens = lens[A] >> 'id
Run Code Online (Sandbox Code Playgroud)
但我得到错误: could not find implicit value for parameter mkLens: shapeless.MkFieldLens[A,Symbol with shapeless.tag.Tagged[String("id")]]
是否可以为所有孩子定义镜头trait A
?
我有下一个配置:
lazy val mainProject = Project(
id = "project-helper",
base = file("."),
settings = Project.defaultSettings ++ Seq(
name := "my-first-project",
version := "0.1-SNAPSHOT",
scalaVersion := "2.10.2",
licenses += ("MIT", url("http://opensource.org/licenses/MIT")),
publishMavenStyle := false,
pomExtra := pomXml,
publishArtifact in Test := false,
resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
libraryDependencies ++= Seq(
"org.scala-lang" % "scala-reflect" % "2.10.3",
"org.scalamacros" % "quasiquotes_2.10.3" % "2.0.0-M3"
),
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0-M3" cross CrossVersion.full)
)
)
Run Code Online (Sandbox Code Playgroud)
我想把它发布成一个bintray.
我这样做publish
但是我得到了错误:
java.lang.RuntimeException: Repository for publishing is not …
Run Code Online (Sandbox Code Playgroud) 我有下一个代码:
//TestActor got some message
class TestActor extends Actor {
def receive = {
case string: String => //....
}
}
//TestReg when create get ActorRef, when i call `pass` method, then should pass text to ActorRef
class TestReg(val actorRef: ActorRef) {
def pass(text: String) {
actorRef ! text
}
}
Run Code Online (Sandbox Code Playgroud)
当我写测试时:
class TestActorReg extends TestKit(ActorSystem("system")) with ImplicitSender
with FlatSpecLike with MustMatchers with BeforeAndAfterAll {
override def afterAll() {
system.shutdown()
}
"actorReg" should "pass text to actorRef" in {
val …
Run Code Online (Sandbox Code Playgroud) 我有下一个代码,我想从值中提取默认参数.
//
def extractor[T] = macro extractorImpl[T]
def extractorImpl[T: c.WeakTypeTag](c: Context) = {
//first i got a type contructor
???
}
Run Code Online (Sandbox Code Playgroud)
我尝试attachments
但attachments.all
返回一个Set[Any]
(例如)SymbolSourceAttachment(val name: String = "new name")
SymbolSourceAttachment
包含ValDef
但我不知道如何从中提取SymbolSourceAttachment
ValDef
.
顺便说一句我应该得到一个 Map[String, String]("name" -> "new name")
例:
case class Person(name: String = "new name")
object Macro {
def extractor[T] = macro extractorImpl[T]
def extractorImpl[T: c.WeakTypeTag](c: Context) = {
import c.universe._
c.weakTypeOf[T].declarations.collect {
case a: MethodSymbol if a.isConstructor =>
a.paramss.collect …
Run Code Online (Sandbox Code Playgroud) 我用它twitter-bootstrap
来创建一个接口.但我不知道如何创建tab-widget
垂直文本.对于文本转换,我使用:
-moz-transform:rotate(270deg);
-moz-transform-origin: bottom left;
-webkit-transform: rotate(270deg);
-webkit-transform-origin: bottom left;
-o-transform: rotate(270deg);
-o-transform-origin: bottom left;
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我克隆了prototype.js存储库,但是当我尝试构建时,我得到错误:
rake aborted!
uninitialized constant Sprockets::Secretary
Run Code Online (Sandbox Code Playgroud)
是什么原因?
我有两个返回的数据源 List[Int]
// first work with postgresql database
object Db {
def get: Future[List[Int]] = // impl
}
// second it's remote service
object Rs {
def get: Future[List[Int]] = // impl
}
Run Code Online (Sandbox Code Playgroud)
然后我想返回两个列表.但我不知道如何处理异常:
Db可能抛出ConnectionUnavailable
远程服务 - 错误请求或InternalServer错误
两者 - TimeoutException
但是,当我只有db的结果时,我想返回它.如果我有来自db和远程服务的结果,我想返回两个列表的总和.
如何处理这个案子?
我有下一个代码
val listOption: List[Option[Int]] = List(1.some, none, 2.some)
Run Code Online (Sandbox Code Playgroud)
我想折叠元素,我写下一个代码
val result = listx.fold(0.some)((acc, el) => {
(acc, el) match {
case (Some(a), Some(b)) => Some(a + b)
case (Some(a), _) => Some(a)
case (_, Some(b)) => Some(b)
case _ => el
}
})
println(result.getOrElse(0)) // => 3
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但我在scalaz来源中看到下一个三重奏
val composeFold = Foldable[List] compose Foldable[Option]
composeFold.fold(listOption) // => 3
Run Code Online (Sandbox Code Playgroud)
但我不明白它是如何正确的工作,以及为什么scalaz不将这些方法混合到listOption
实例中,以及scala fold
和scalaz 之间的区别fold