小编Jac*_*ack的帖子

仅使用某些键映射

关于Scala中的映射,if ms - (k, 1, m)返回包含ms的所有映射的映射,除了具有给定键x,1和m的任何映射.

然后,什么语句将返回ms的所有映射的映射,只有 给定的键x,1和mie我正在寻找ms的子集,其中只有k,1和m是键.

这有效,但很糟糕:

scala> val originalMap = Map("age" -> "20", "name" -> "jack", "hobby" -> "jumping")
ms: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20, name -> jack, hobby -> jumping)

scala> val interestingKeys = List("name", "hobby")
interesting: List[java.lang.String] = List(name, hobby)

scala> val notInterestingMap = originalMap -- interestingKeys
notInterestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20)

scala> val interestingMap = originalMap -- notInterestingMap.keySet
interestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(name -> jack, hobby -> jumping)
Run Code Online (Sandbox Code Playgroud)

scala

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

这是设计Scala API的良好返回类型模式吗?

我在Scala中经常看到这种类型的模式(在这里找到这个例子):

class UserActor extends Actor {
  def receive = {
    case GetUser(id) =>
      // load the user, reply with None or Some(user)
      val user: Option[User] = ... 
      sender ! user
    case FindAll() =>
      // find all users
      val users: List[User] = ...
      sender ! users
    case Save(user) =>
      // persist the user
      sender ! Right(user)
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,取决于您获得的呼叫:选项[用户],列表[用户],右[用户].这种方法很好!如果这是最佳的,我只是想问一下它的兴趣?例如(这可能是一个糟糕的):通过总是返回List [User]来尝试和推广它会使API变得更好或更糟吗?因此,当找不到用户或保存失败时,列表将只是空的.我只是好奇......关于如何改进上述'模式'的任何其他建议?

我只是想为这种风格的API确定一个完美的模式,你有时会得到一个实体,有时却没有,有时也只有一个列表.是否有"最佳"方式来实现这一目标,还是每个人都有自己的角色?

scala

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

无法使用Slick更新记录

类和表定义如下所示:

case class Group(
  id: Long = -1,
  id_parent: Long = -1,
  label: String = "",
  description: String = "")

  object Groups extends Table[Group]("GROUPS") {
    def id = column[Long]("ID", O.PrimaryKey, O.AutoInc)
    def id_parent = column[Long]("ID_PARENT")
    def label = column[String]("LABEL")
    def description = column[String]("DESC")
    def * = id ~ id_parent ~ label ~ design <> (Group, Group.unapply _)
    def autoInc = id_parent ~ label ~ design returning id into {
      case ((_, _, _), id) => id
    }
  }
Run Code Online (Sandbox Code Playgroud)

要更新记录,我可以这样做:

  def …
Run Code Online (Sandbox Code Playgroud)

scala slick

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

在Scala中选择两个字符之间的子字符串

我从HTTP请求中得到一个乱码的JSON字符串,所以我正在寻找一个临时解决方案来仅选择JSON字符串.

request.params()返回:

[{"insured_initials":"Tt","insured_surname":"Test"}=, _=1329793147757,
callback=jQuery1707229194729661704_1329793018352
Run Code Online (Sandbox Code Playgroud)

我希望从"{"开始到"}"结束的所有内容.

我发现了很多与其他语言做类似事情的例子,但这样做的目的不仅是解决问题,还要学习Scala.有人请告诉我如何选择{....}部分吗?

string scala

5
推荐指数
2
解决办法
3227
查看次数

将两种匹配模式合二为一

如何结合(以一种很好的方式)两个Scala match'es?

首先,我必须测试Option是否是有效值:

myOption match {
  case Some(op) =>
    doSomethingWith(op)
  case None =>
    handleTheError()
Run Code Online (Sandbox Code Playgroud)

那么如果op有效,我想测试另一种模式:

Path(request.path) match {
  case "work" => {
    println("--Let's work--")

  }
  case "holiday" => {
    println("--Let's relax--")
  }
  case _ => {
    println("--Let's drink--")
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以这样组合它们:

myOption match {
  case Some(op) =>
    doSomethingWith(op)
    Path(request.path) match {
      case "work" => {
        println("--Let's work--")          
      }
      case "holiday" => {
        println("--Let's relax--")
      }
      case _ => {
        println("--Let's drink--")
      }
    }
  case None =>
    handleTheError()
Run Code Online (Sandbox Code Playgroud)

但是,它感觉很草率.是否有更好的方式以某种方式组合它们.

更新

道歉,我应该更好地解释.我实际上试图找出是否存在用于简化(或分解)这些控制结构的已知模式.例如(假设这是真的): …

scala

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

您可以将应用程序作为Google Developer销售,还是必须成为商家?

抱歉,如果这不是一个典型的SO问题,但我希望在同样情况下的某个人能够提供帮助.

在某些国家/地区,您无法打开Goog​​le Merchant帐户,但可以打开Goog​​le Developer帐户.因此,如果您打开Goog​​le Developer帐户,但无法开设商家帐户,您是否仍然可以销售应用程序或仅免费提供这些应用程序?

我问,因为我只是为那些销售他们的应用程序的客户开发,但从未在我的国家(南非)销售应用程序,因此您无法注册为Google Merchant.

更新:

对于那些在我的答案中列出以下国家/地区以外的人,请注意亚马逊Android开发人员目前没有这样的限制,并且开发人员注册目前是免费的(当时或写作).付款通过支票进行.

android

5
推荐指数
2
解决办法
9486
查看次数

在for表达式中对Slick查询结果进行排序

以下函数工作正常,但我希望它首先按parent_id排序结果,然后按顺序排序.

def getTree = for {
  (a, c) <- Activities leftJoin Clients on (_.id === _.id_a)
} yield (a.id, a.label, a.parent_id, a.order, c.id.?, a=c.name)
Run Code Online (Sandbox Code Playgroud)

我如何使用Slick做到这一点?

scala scalaquery slick

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

你如何编写一个对文件更改做出反应的 Scala 脚本

我想将以下批处理脚本更改为 Scala(只是为了好玩),但是,脚本必须继续运行并监听 *.mkd 文件的更改。如果任何文件发生更改,则脚本应重新生成受影响的文档。文件 IO 一直是我的致命弱点...

#!/bin/sh
for file in *.mkd
do
  pandoc --number-sections $file -o "${file%%.*}.pdf"
done
Run Code Online (Sandbox Code Playgroud)

任何围绕这一好方法的想法将不胜感激。

scala

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

如何使用 Coursier 在命令行中运行 Scala 3 应用程序

如果您按照官方 Scala 3 站点(如DottyScala Lang)上的步骤进行操作,那么它建议使用 Coursier 安装 Scala 3。问题在于,这些都没有解释在执行这些步骤后如何运行已编译的 Scala 3 应用程序。

斯卡拉 2:

> cs install scala
> scalac HelloScala2.scala
> scala HelloScala2
Hello, Scala 2!
Run Code Online (Sandbox Code Playgroud)

斯卡拉 3:

> cs install scala3-compiler
> scala3-compiler HelloScala3.scala
Run Code Online (Sandbox Code Playgroud)

现在如何使用 Scala 3 运行编译的应用程序?

scala coursier scala-3

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

如何在 Pandoc 生成的 PDF 表格中添加垂直线

有没有办法让 Pandoc 在 PDF 输出表格中放置垂直线,而无需编辑 Pandoc 的源代码?

目前我正在使用以下方法生成 PDF:

pandoc --template pandoc-template.tex -V geometry:margin=1in -V geometry:a4paper --number-sections --variable file1.md -o file1.pdf
Run Code Online (Sandbox Code Playgroud)

该表的降价看起来像:

+-----------------+-----------------+
| Row 1           | Some data 1     |
| Row 2           | Some data 2     |
+-----------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

Pandoc 简单地忽略垂直线。我发现了有关此主题的多个问题,但答案仍然不明确。

为上面的降价生成的 Latex 可能看起来像这样,其中管道字符告诉 Latex 为表格生成垂直线:

\begin{longtable}{ | l | l |}
  \hline                       
  Row 1 & Some data 1 \\
  Row 2 & Some data 2 \\
  \hline  
\end{longtable}
Run Code Online (Sandbox Code Playgroud)

下面的代码来自 LaTex.hs Pandoc 源文件。我不是 Haskell 开发人员,但它似乎没有选项来添加在 LaTex 中创建垂直线所需的管道字符。

  let colDescriptors …
Run Code Online (Sandbox Code Playgroud)

haskell pandoc

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

标签 统计

scala ×8

slick ×2

android ×1

coursier ×1

haskell ×1

pandoc ×1

scala-3 ×1

scalaquery ×1

string ×1