小编tux*_*dna的帖子

在Play 2 Framework中,如何在sbt dist包名中包含git commit sha?

我有一个Play 2.2.x项目,我可以为其创建通用分发zip存档:

$ sbt dist
Run Code Online (Sandbox Code Playgroud)

这会创建一个文件 target/universal/project-name-1.0-SHAPSHOT.zip

我想包含一个git commit sha,这样生成的包看起来像这样:

target/universal/project-name-1.0-SHAPSHOT-0d6d7f4325de87df6a8f46bd635d14ba8892715a.zip
Run Code Online (Sandbox Code Playgroud)

在Play 2 Framework中,如何在sbt dist包名中包含git commit sha?

scala sbt playframework-2.0

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

漂亮在scala中打印嵌套的Map

假设我在Scala中有一个nexted Map,如下所示:

type MapType = Map[String, Map[String, Map[String, (String, String)]]]

val m: MapType = Map("Alphabet" -> Map( "Big Boss" -> Map("Clandestine Mssion" -> ("Dracula Returns", "Enemy at the Gates"))))

println(m)
Run Code Online (Sandbox Code Playgroud)

这将输出Map,如下所示:

Map(Alphabet -> Map(Big Boss -> Map(Clandestine Mssion -> (Dracula Returns,Enemy at the Gates))))
Run Code Online (Sandbox Code Playgroud)

我怎样才能像下面那样打印出来?:

    Map(
      Alphabet -> Map(Big Boss -> Map(
               Clandestine Mssion -> (Dracula Returns,Enemy at the Gates)
                                     )
                      )
       )
Run Code Online (Sandbox Code Playgroud)

或者以类似于漂亮嵌套的JSON的方式.

scala

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

如何将元组应用于Scala中的格式字符串?

EDIT1

我已经看到了这个问题:将函数应用于Scala中的元组

理想情况下,我只想这样做:

scala> val t = ("A", "B", "C")
t: (java.lang.String, java.lang.String, java.lang.String) = (A,B,C)

scala> "%-10s %-50s %s".format(t) // or some closer syntax
Run Code Online (Sandbox Code Playgroud)

哪个应该输出为

res12: String = A          B                                                  C
Run Code Online (Sandbox Code Playgroud)

EDIT2

或者在某种意义上,Scala编译器应该能够推断出我实际上正在调用正确的参数和类型

"%-10s %-50s %s".format(t.untuple) 扩展到 "%-10s %-50s %s".format(t._1, t._2, t._3)

我可以使用宏来执行此操作吗?

原始问题如下

我有一个元组用于格式化字符串:

scala> val t = ("A", "B", "C")
t: (java.lang.String, java.lang.String, java.lang.String) = (A,B,C)

scala> "%-10s %-50s %s".format(t.productElements.toList: _*)
warning: there were 1 deprecation warnings; re-run with -deprecation for details
res10: String = A …
Run Code Online (Sandbox Code Playgroud)

scala

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

如何在使用scalaz时为布尔创建半群?

我使用scalaz进行一些验证,在代码中的某处有布尔条件.示例如下所示:

import scalaz._, std.AllInstances._

object Temporary {

  def validate(x: Int): scalaz.Validation[List[String], Boolean] = {
    try {
      if (x < 10) {
        scalaz.Success(true)
      } else {
        throw new RuntimeException("why oh why")
      }
    } catch {
      case e: Throwable => scalaz.Failure(List(e.getMessage))
    }
  }


  def main(args: Array[String]) {
    val x = validate(1) +++ validate(10)
    println(x)

    val y = List(1,2,4,10).map(validate(_)).reduce(_ +++ _)
    println(y)
  }

}
Run Code Online (Sandbox Code Playgroud)

我得到以下编译错误.

Error:(21, 25) could not find implicit value for parameter M1: scalaz.Semigroup[Boolean]
    val x = validate(1) +++ validate(10)
                        ^ …
Run Code Online (Sandbox Code Playgroud)

scala scalaz

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

R DataFrame - 包含多个术语的列的一个热编码

我有一个数据框,其中一列有多个值(以逗号分隔):

mydf <- structure(list(Age = c(99L, 10L, 40L, 15L),
                       Info = c("good, bad, sad", "nice, happy, joy", "NULL", "okay, nice, fun, wild, go"),
                       Target = c("Boy", "Girl", "Boy", "Boy")), 
                  .Names = c("Age", "Info", "Target"),
                  row.names = c(NA, 4L),
                  class = "data.frame")

> mydf
  Age                      Info Target
1  99            good, bad, sad    Boy
2  10          nice, happy, joy   Girl
3  40                      NULL    Boy
4  15 okay, nice, fun, wild, go    Boy
Run Code Online (Sandbox Code Playgroud)

我想将Info列拆分为一个热编码列,并将结果附加到Target列之外,例如:

  Age                      Info Target good bad …
Run Code Online (Sandbox Code Playgroud)

r dataframe one-hot-encoding

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

如何使用Scala Slick 2.0在.where()子句中生成OR查询?

我想在whereSlick查询的方法中添加两个子句.我有代码:

val users = TableQuery[Users]
val actions = TableQuery[Acts]
val filteredUsers = users.where(.....) // Some condition
val acts = actions.where(_.domain === 10)
val ownerAct = acts.where(_.owner in filteredUsers)
val assigneeAct = acts.where(_.assignee in filteredUsers)
Run Code Online (Sandbox Code Playgroud)

我想获取属于过滤用户assigneeownerer过滤用户的操作.我希望代码是这样的:

val users = TableQuery[Users]
val actions = TableQuery[Acts]
val filteredUsers = users.where(.....) // Some condition
val acts = actions.where(_.domain === 10)

val ownerOrAssigneeAct = acts.where(_.owner in filteredUsers).
                                 or(_.assignee in filteredUsers)
Run Code Online (Sandbox Code Playgroud)

如何使用Scala Slick 2.0在.where()中生成这样的OR查询?

scala playframework slick playframework-2.2

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

在Scala中,List()和Nil之间是否存在_performance_差异?

假设我有一个接受对象和列表的函数:

case class Point(x: Int, y: Int)
def f1(w: Point, l: List[String]) =  { /* do something /* }
Run Code Online (Sandbox Code Playgroud)

我通常会这样使用它:

val w = Point(1,1)
val lst = List("Hello", "world")
f1(w, lst) // non empty list
Run Code Online (Sandbox Code Playgroud)

很多时候我需要调用带有空列表的函数作为第二个参数:

f1(w, List()) // empty list
f1(w, Nil) // empty list
Run Code Online (Sandbox Code Playgroud)

最后两行之间有任何性能差异吗?

我认为使用List()会调用List.apply()方法.Scala编译器是否将其优化为Nil

EDIT1

这不是Scala的重复:Nil vs List()

注意:Nilvs 之间有任何性能差异List()吗?Scala编译器是否在此进行任何优化?

scala

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