我使用了play-2.2.1的示例app-eventSource开发了一个feed服务器.它工作正常.但是当我在代理服务器nginx后面运行应用程序时,我得到:对此请求的响应是分块的,因此需要发送HTTP 1.1,但这是HTTP 1.0请求.是我的代理服务器转换请求到HTTP 1.0?请帮助解决这个问题......从应用程序的角度来看是否可以解决这个问题......或者nginx更新能解决这个问题吗?
我的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根据条件表达式?有没有人有这个想法?
我正在玩Play!2.4 scala,spec2和Mockito.
我试图在我的一个集成测试中设置虚假请求的远程地址,但我找不到正确的方法来做到这一点.
我想做类似下面的代码片段(不编译):
route(FakeRequest(GET, "/users/geographicPoint", remoteAddress = "81.xxx.xxx.xxx"))
Run Code Online (Sandbox Code Playgroud)
我怎么能轻松做到这一点?
使用 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) 我试图将这个递归函数转换为尾递归函数
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中,但任何语言的示例都会有所帮助.
我正打算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章没有给我任何提示如何解决这个问题,所以欢迎帮助:)
我必须使用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) 我们的产品开发团队一直在讨论 html 的可维护性和重用性。为了设置上下文,我们从 HTML5/CSS3 前端和 Play MVC 下的纯 JS 开始,而后者又使用 RESTful 后端。然后我们想到将 AngularJS 添加到旋转中并采用混合方法,结果却意识到两个强大的 MVC 框架不一定能一起工作,您必须选择一个。因此,出于性能和类型安全等问题,我们决定使用 Play 框架和基于 Scala 的模板。
挑战在于:我们希望创建可重用的 Web 组件,就像 Apache Tiles 一样,以便可以重用常见的元素,例如页眉、菜单、页脚等。这些组件已准备好进入 Play,可以向其中添加动态内容以提供整个页面。
这能做到吗?如果是,如何?
其次,播放模板似乎让您回到过去,因为它们不允许在 html 中分离关注点。因此,为了重新设计或改进 html 内容,html 开发人员将不得不处理模板或将新 html 与现有模板合并。如何使这个过程更容易?
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
有人可以用英语解释这个,我是斯卡拉的新手
我是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)
此外,我想将其与多个(链式/逐步)验证相结合,以便能够显示:
我想开发一个通用解决方案,以便我可以将它用于所有领域.
感谢任何帮助.
我想更好地构建地图,所以我拍了一张可变的地图。我想用空值初始化它。
我已经试过了
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 ×10
generics ×1
nginx ×1
recursion ×1
regex ×1
reusability ×1
shapeless ×1
tiles ×1
validation ×1