小编Dan*_*ner的帖子

Scalaz验证

我正在尝试在我们的项目中使用scalaz验证并遇到以下情况:

def rate(username: String, params: Map[String, String]): ValidationNEL[String, Int] = {
  val voteV:Validation[String, RateVote] = validate(params, "vote") flatMap {v: String => RateVote(v)}
  val voterV:Validation[String, Sring] = validate(params, "voter")

  ... 
}
Run Code Online (Sandbox Code Playgroud)

现在我必须返回包含可能的参数错误的ValidationNEL,如果有的话,或者使用经验证的参数来调用该方法:

storage.rate(username, voter, vote): Validation[String, Int]
Run Code Online (Sandbox Code Playgroud)

我知道,我可以使用| @ | 第一部分,但这个代码

(voterV.liftFailNel |@| voteV.liftFailNel) { (voter, rv) =>
  storage.rate(username, voter, rv)
}
Run Code Online (Sandbox Code Playgroud)

会回来的ValidationNEL[String, Validation[String, Int]].有没有办法"扁平化"这个结果,以获得ValidationNEL[String, Int]

validation scala scalaz

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

未绑定的通配符类型

当我得到时,我正在玩Scala REPL error: unbound wildcard type.我试图声明这个(无用的)函数:

def ignoreParam(n: _) = println("Ignored")
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?

是否可以在不引入命名类型变量的情况下声明此函数?如果是这样,怎么样?

types scala existential-type unbounded-wildcard

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

scalafmt 更改行结尾,如何配置它以忽略它们?

运行任何 SBT 任务(例如compile)后,scalafmt 会被执行并更改某些计算机上的行结尾(大多数计算机使用 Windows)。是否可以在 scalafmt.conf 或任何其他方式中设置行结尾?

谢谢。

scala line-endings sbt scalafmt

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

MongoDB中如何通过引用字段进行查询?

我有两个 Mongo 模式:

用户:

{
  _id: ObjectId,
  name: String,
  country: ObjectId // Reference to schema Country
}
Run Code Online (Sandbox Code Playgroud)

国家:

{
  _id: ObjectId,
  name: String
}
Run Code Online (Sandbox Code Playgroud)

我想获取所有国家/地区名称为“VietNam”的用户。

对于这种情况,我可以使用哪种查询(仅针对用户模式)?

我希望它看起来像这样的 SQL 查询:

SELECT * 
FROM User
JOIN Country 
ON User.country = Country._id 
WHERE Country.name = 'VietNam'
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js aggregation-framework

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

Jinja的多态宏

我正在寻找一种方法来让Jinja宏根据传递的对象类型调用不同的实现.基本上,标准的Python方法多态.现在,我正在使用类似于此的丑陋解决方法:

{% macro menuitem(obj) %}
  {% set type = obj.__class__.__name__ %}
  {% if type == "ImageMenuItem" %}
    {{ imagemenuitem(obj) }}
  {% elif type == "FoobarMenuItem" %}
    {{ foobarmenuitem(obj) }}
  {% else %}
    {{ textmenuitem(obj) }}
  {% endif %}
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)

在纯Python中,人们可以使用模块环境,例如globals()[x+'menuitem'],这不是很漂亮,但效果非常好.我尝试使用Jinja上下文类似的东西,但后者似乎不包含宏定义.

有什么更好的方法来实现我所寻求的目标?

python jinja2

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

为Scala返回非未来游戏

我有以下方法返回Play for Scala应用程序中的字符串列表:

def example = Action.async { request =>

  val access = getAccess()

  if (access > 0) {
          val future = MyObject.intensiveMethod
          future.map {
              result => {
                  val list = result.asInstanceOf[List[String]]
                  val json = JsObject(Seq(
                      "list" -> Json.toJson(list)
                  ))
                  Ok(json)
              }
          }
  }
  else {
      val json = JsObject(Seq(
          "msg" -> JsString("error!")
      ))
      Ok(json)
  }
Run Code Online (Sandbox Code Playgroud)

}

代码不会编译时出现以下错误,因为如果access = 0,则结​​果不是Future:

类型不匹配; 发现:play.api.mvc.Result required:scala.concurrent.Future [play.api.mvc.Result]

如何解决这个问题?

asynchronous scala future playframework playframework-2.5

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

Scala验证 - 右偏差

最后,Scala 2.12具有右偏置.我听说它可以用于验证目的,但我无法想象这一点.我无法找到好的榜样.
有人可以解释一下这个monad如何帮我验证吗?此增强的Either还可以涵盖其他用例吗?

functional-programming scala either

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

PDF 框坐标是相对坐标还是绝对坐标?

我想使用 pyPDF 以编程方式编辑 PDF。目前,我正在努力解释各种 PDF 框(TrimBox、MediaBox 等)的尺寸。每个盒子有四个维度存储为四元组,例如:

TrimBox:           56.69    56.69  1040.31   751.18
Run Code Online (Sandbox Code Playgroud)

根据 PDF 规范,这些应该描述一个矩形,并且当然 (56.69, 56.69) 确定了该矩形的左上角。然而,(1040.31, 751.18) 是被解释为这个矩形的右下角,还是相对于左上角的向量?

显然,这个答案在排字工中是如此众所周知,以至于到目前为止我在任何地方都找不到明确的拼写。

pdf pdf-generation pypdf

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