小编EEC*_*LOR的帖子

如何在单独的线程中运行代码?

我想生成一个线程并在该线程中运行代码.Scala有哪些选项?

示例用法如下:

Thread.currentThread setName "MyThread"

val myThreadExecutor = ???

val threadNamePromise = Promise[String]

future {
  myThreadExecutor run {
    val threadName = "MySpecialThread"
    Thread.currentThread setName threadName
    threadNamePromise success threadName
  }
}

Await.result(threadNamePromise.future, Duration.Inf)

future {
  myThreadExecutor run {
    println(Thread.currentThread.getName) // MySpecialThread
  }
}

future {
  myThreadExecutor run {
    println(Thread.currentThread.getName) // MySpecialThread
  }
}

println(Thread.currentThread.getName)   // MyThread
Run Code Online (Sandbox Code Playgroud)

我可以使用内置Scala库中的任何内容吗?

编辑

我更新了代码段以更好地反映意图

scala

6
推荐指数
2
解决办法
4393
查看次数

使用Scala的结构类型创建更具体的隐式

据我所知,集合库中没有共享特征来定义map方法(很可能是因为有不同的签名map).

我有一个可观察的值(想想一个ui系统中的属性),它有一个change事件.可以使用map方法映射可观察值.

但是,当我们使用已经有map方法的类型时,我们应该能够使用内置方法map.

所以代替:

prop map { x => 
  x map { actualX =>
   //do something
  }
}
Run Code Online (Sandbox Code Playgroud)

我想这样使用它:

prop map { actualX =>
  //do something
}
Run Code Online (Sandbox Code Playgroud)

我有一个简化的测试用例.首先是我使用的不同部分:

// leaving out the observable part
trait ObservableValue[T] {
  def value: T
}

trait LowerPriorityImplicits {
  // default implementation that adds a regular map method
  implicit class RichObservableValue1[A](o: ObservableValue[A]) {
    def map[B](f: A => B): ObservableValue[B] = new ObservableValue[B] {
      def value …
Run Code Online (Sandbox Code Playgroud)

types scala typeclass implicit-conversion structural-typing

5
推荐指数
1
解决办法
615
查看次数

Play Framework 2.1.1 Json编写嵌套对象

我整个下午一直试图让我的头脑无所事事,Play 2.1.1彻底改变了Json如何读写作品.

基本上我有一个包装器对象,看起来像:

case class CombinedUser(user: SocialUser, userdetails: UserDetails)
Run Code Online (Sandbox Code Playgroud)

你可以看到它包含2个我想要序列化和反序列化为json的类.

但我不明白如何使用新设计获取和设置子类中的字段.

例如

implicit val combinedUser2Reads = (
  (__ \ "email").read[String] and
  (__ \ "providerid").read[String] and
  (__ \ "firstname").read[String] and
  (__ \ "lastname").read[String] and
  (__ \ "fullname").read[String] and
  (__ \ "avatarurl").read[String] and
  (__ \ "address1").read[String] and
  (__ \ "address2").read[String] and
  (__ \ "address3").read[String] and
  (__ \ "city").read[String] and
  (__ \ "country").read[String] and
  (__ \ "phone").read[String] and
  (__ \ "publickey").as[String]
)(CombinedUser2.apply _)
Run Code Online (Sandbox Code Playgroud)

我想要一个包含大多数子类字段的json blob,所有字符串.

因为它使用了apply东西,所以我看不出如何在映射之前创建子类.

非常感谢任何帮助或指导.

谢谢

汤姆

json scala playframework playframework-json

4
推荐指数
1
解决办法
3196
查看次数

Play Framework 2.2 - 找不到参数超时的隐含值

我正在使用以下代码测试呼叫:

"status OK" in {
  status(doFakeRequest) === OK
}
Run Code Online (Sandbox Code Playgroud)

调用status给出以下编译错误: could not find implicit value for parameter timeout: akka.util.Timeout

scala playframework-2.2

4
推荐指数
1
解决办法
1256
查看次数

键入无形HList内容的推断

这个例子很简单.

我有一组像这样的类:

case class KeyMapping[KeyType](k:KeyType)

class WrappedMapping[KeyType](m:T forSome {type T <: KeyMapping[KeyType]}) {
  val k:KeyType = ???
}
Run Code Online (Sandbox Code Playgroud)

在以下代码中,正确推断了类型:

 val w = new WrappedMapping(KeyMapping("key"))

 //The statement below gives the correct error
 //type mismatch; 
 //  found : w.k.type (with underlying type String)  required: Nothing
 //val test1:Nothing = w.k
Run Code Online (Sandbox Code Playgroud)

我不知道如何正确推断以下类型:

class Mappings[KeyType, L <: HList](mappings:L) {
  val k:KeyType = ???
}

val m = new Mappings(KeyMapping("key1") :: KeyMapping("key2") :: HNil)

// should not compile, k should be of type String
val test2:Nothing …
Run Code Online (Sandbox Code Playgroud)

scala hlist shapeless

4
推荐指数
1
解决办法
544
查看次数

如何使用Play 2.x对MySQL数据库进行单元测试?

我需要测试我的代码是否创建了正确的数据库语句.我知道我可以使用内存数据库运行我的应用程序.它并不完美,但足以满足这个项目的需要.我的SQL包含MySQL特定的东西.

当我运行我的测试时,它打破了包含以下内容的进化:

CREATE TABLE `Beaches` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
COLLATE='utf8_general_ci'
Run Code Online (Sandbox Code Playgroud)

如何解决MySQL特定语法的问题?

mysql database unit-testing playframework-2.0 playframework-2.1

3
推荐指数
1
解决办法
2869
查看次数

为什么Option扩展产品?

我必须遗漏一些东西,但我没有看到课堂上的特质productElement和特性的实现.productArityProductOption

所以有两个问题:

  1. 为什么要Option延长Product
  2. 怎么可能Option(或者它的两个子类中的任何一个)没有实现这两个方法?

scala scala-option

3
推荐指数
1
解决办法
225
查看次数

在构建中没有定义默认值时,在命令行上设置设置值?

我正在编写一个需要特定设置的插件: configUrl

如果我指定我的设置build.conf将如下所示:

MyPlugin.configUrl := "http://..../..."
Run Code Online (Sandbox Code Playgroud)

然后我可以使用命令行来执行此操作:

sbt 'set MyPlugin.configUrl := "http://..../..."' performAction
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以让我在构建中没有这个设置?

如果我sbt没有设置启动,我会收到以下错误:

[error] Reference to undefined setting: 
[error] 
[error]   *:config-url from *:application-configuration
Run Code Online (Sandbox Code Playgroud)

我搜索谷歌但无法找到在命令行上提供设置的方法,如下所示:

sbt config-url="http://..../..."
Run Code Online (Sandbox Code Playgroud)

sbt

3
推荐指数
1
解决办法
3512
查看次数