小编Mic*_*jac的帖子

HTTP 1.0请求是否在play框架2.2.1中提供了分块响应

我使用了play-2.2.1的示例app-eventSource开发了一个feed服务器.它工作正常.但是当我在代理服务器nginx后面运行应用程序时,我得到:对此请求的响应是分块的,因此需要发送HTTP 1.1,但这是HTTP 1.0请求.是我的代理服务器转换请求到HTTP 1.0?请帮助解决这个问题......从应用程序的角度来看是否可以解决这个问题......或者nginx更新能解决这个问题吗?

nginx playframework playframework-2.2

2
推荐指数
1
解决办法
1624
查看次数

在Scala中,如何在`if块'中定义`val`?

我的Scala代码看起来像这样

if (true) {
  val a = 1
}
else {
  val a = 2
}

print(a)
print(a+100)
Run Code Online (Sandbox Code Playgroud)

print(a),因为会引发错误a超出范围评估该行当..然后,我怎样可以定义一个val根据条件表达式?有没有人有这个想法?

functional-programming scala

2
推荐指数
1
解决办法
103
查看次数

Play2 scala specs2使用远程地址测试FakeRequest

我正在玩Play!2.4 scala,spec2和Mockito.

我试图在我的一个集成测试中设置虚假请求的远程地址,但我找不到正确的方法来做到这一点.

我想做类似下面的代码片段(不编译):

route(FakeRequest(GET, "/users/geographicPoint", remoteAddress =  "81.xxx.xxx.xxx"))
Run Code Online (Sandbox Code Playgroud)

我怎么能轻松做到这一点?

scala playframework-2.4

2
推荐指数
1
解决办法
259
查看次数

如何使用 LabelledGeneric 一般更新案例类字段?

使用 shapeless,可以LabelledGeneric像这样更新 case 类字段:

case class Test(id: Option[Long], name: String)
val test = Test(None, "Name")
val gen = LabelledGeneric[Test]

scala> gen.from(gen.to(test) + ('id ->> Option(1L)))
res0: Test = Test(Some(1),Name)
Run Code Online (Sandbox Code Playgroud)

我希望Test类(和其他类)扩展一个抽象类Model,该类将实现一个方法withId,该方法将使用LabelledGeneric类似于上述代码来更新id字段,如果它有一个(它应该)。

我的尝试将 a 的隐式参数添加LabelledGeneric[A]到 的构造函数中Model,它实现得很好。我还需要以某种方式为LabelledGeneric#Repr具有id要替换的字段的记录语法提供证据。添加一个隐式Updater参数来withId满足编译器,这样下面的代码会编译,但它不可用。

import shapeless._, record._, ops.record._, labelled._, syntax.singleton._, tag._

abstract class Model[A](implicit gen: LabelledGeneric[A] { type Repr <: HList }) { this: A => …
Run Code Online (Sandbox Code Playgroud)

scala shapeless

2
推荐指数
1
解决办法
850
查看次数

Tail递归函数用于分数之和

我试图将这个递归函数转换为尾递归函数

def sumOfFractions(n: Int): Double = {
  require(n > 0, "Parameter n has to be greater than 0");
  if (n==1)
    1.0
  else
    1.0 / n + sumOfFractions(n - 1)
}
Run Code Online (Sandbox Code Playgroud)

我认为这个解决方案可行,但是当它运行时它只返回1.0

def sumOfFractions(n:Int):Double = {

  def inner(acc:Int, n:Int): Double={
    if(n <= 1)1.0
    else
    {
        inner(acc+(1/n),n-1)
    }

  }

  inner(0,n)
}
Run Code Online (Sandbox Code Playgroud)

我认为这是因为累加器没有正确更新,但我不明白为什么.代码在Scala中,但任何语言的示例都会有所帮助.

recursion functional-programming scala tail-recursion

2
推荐指数
1
解决办法
171
查看次数

以编程方式在Scala中设置重复参数

我正打算Futures.awaitAll用可变数量的井来打电话Future.awaitAll被定义为awaitAll(timeout : Long, fts : Future[Any]*).我试过传入a List和a Array但两者都不起作用:

list = future1 :: future2 :: Nil

Futures.awaitAll(1000, list)

found : List[scala.actors.Future[Any]] required: scala.actors.Future[Any]
Run Code Online (Sandbox Code Playgroud)

编辑:我现在要做的是Futures.awaitAll使用可变数量的参数(1到n)以编程方式调用.所以使用Futures.awaitAll(1000, future1, future2)不是一种选择.

Scala编程的第8.8章没有给我任何提示如何解决这个问题,所以欢迎帮助:)

language-features scala variadic-functions

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

为什么scala中不允许这种匹配?

我必须使用scala查找元素是否在列表中,并且我只允许使用递归.为什么下面的代码不起作用,因为匹配语句似乎对我来说是正确的.我的IDE在所有三个case语句中都给出了一个错误,它表示类型,mistmatch,boolean required.

def isInN(x: Int, l: List[Int]): Boolean = (l,l.head) match {
  case Nil,_ => false
  case _,x => true
  case _,_ => isInN (x,l.tail)
}
Run Code Online (Sandbox Code Playgroud)

scala

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

使用 Play 重用和维护 HTML!框架

我们的产品开发团队一直在讨论 html 的可维护性和重用性。为了设置上下文,我们从 HTML5/CSS3 前端和 Play MVC 下的纯 JS 开始,而后者又使用 RESTful 后端。然后我们想到将 AngularJS 添加到旋转中并采用混合方法,结果却意识到两个强大的 MVC 框架不一定能一起工作,您必须选择一个。因此,出于性能和类型安全等问题,我们决定使用 Play 框架和基于 Scala 的模板。

挑战在于:我们希望创建可重用的 Web 组件,就像 Apache Tiles 一样,以便可以重用常见的元素,例如页眉、菜单、页脚等。这些组件已准备好进入 Play,可以向其中添加动态内容以提供整个页面。

这能做到吗?如果是,如何?

其次,播放模板似乎让您回到过去,因为它们不允许在 html 中分离关注点。因此,为了重新设计或改进 html 内容,html 开发人员将不得不处理模板或将新 html 与现有模板合并。如何使这个过程更容易?

maintainability scala tiles reusability playframework

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

Scala仿制药对我来说并不清楚

class A {

    def x(): Unit = {
      println("tftf")
    }

}

def t[A](x: A): Unit = {

    x.x    // <- error at this line 

}
Run Code Online (Sandbox Code Playgroud)

得到编译错误 - 类型不匹配; found:需要x.type(带底层类型A):?{def x:?}请注意,隐式转换不适用,因为它们不明确:两个方法any2在对象Predef中打包[A]类型(x:A)确保[对象类型为[A]的前置部分中的A]和方法any2ArrowAssoc(x:A)ArrowAssoc [A]是可能的转换函数,从x.type到?{def x:?} - t

有人可以用英语解释这个,我是斯卡拉的新手

generics scala

0
推荐指数
1
解决办法
118
查看次数

Play框架中的自定义正则表达式验证 - Scala

我是Play 2.3.x和Scala的新手,并尝试实现表单输入验证.

我们假设我有一个示例表单.

val userForm = Form(
   "firstName" -> nonEmptyText
)
Run Code Online (Sandbox Code Playgroud)

我想为名字字段实现类似的东西:

 If a regex for first name (say firstName.regex = “regex for first name” ) is defined then {
     Validate first name against specific regex
 }else{
     Validate against the global regex ( say global.regex = “global regex white list some regex valid for across the application”)
 }
Run Code Online (Sandbox Code Playgroud)

此外,我想将其与多个(链式/逐步)验证相结合,以便能够显示:

  1. 如果没有输入 - 请说出名字
  2. 如果第一个名称已被enetred并且未通过正则表达式验证 - 请输入有效的名字

我想开发一个通用解决方案,以便我可以将它用于所有领域.

感谢任何帮助.

regex validation scala playframework playframework-2.3

0
推荐指数
1
解决办法
1828
查看次数

如何在scala中实例化collection.mutable.Map [String,Any]?

我想更好地构建地图,所以我拍了一张可变的地图。我想用空值初始化它。

我已经试过了

      val resultingMap: collection.mutable.Map[String, Any] = _
Run Code Online (Sandbox Code Playgroud)

但是它分配null给了resultMap,因此当我尝试向其中添加记录时,它正确地引发了异常。

所以我尝试了这样的骇客方式

      val resultingMap: collection.mutable.Map[String, Any] = collection.mutable.Map("" -> "")
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是我想使用更好的标准方法来做到这一点。

scala

0
推荐指数
1
解决办法
1047
查看次数