小编Som*_*yya的帖子

<>操作员在Slick中做了什么?

我正在浏览Slick的文档,以设置一个快速工作的原型.我正在浏览这个链接.

在Mapped Tables部分中,我<>在所提到的示例中看到了一个运算符,但无法在任何地方找到任何文档.需要帮助来理解这一点.

scala slick

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

Scala酸洗案例类版本控制

我希望能够使用scala pickling来存储案例类的二进制表示.

我想知道是否有办法管理案例类的版本控制(协议缓冲区允许的方式)


这是我的例子

我在某个日期创建一个程序,具有以下案例类

case class MessageTest(a:String,b:String) 
Run Code Online (Sandbox Code Playgroud)

然后我序列化了这个类的一个实例

import scala.pickling._
import binary._
val bytes=MessageTest("1","2").pickle
Run Code Online (Sandbox Code Playgroud)

然后我将结果存储到一个文件中


稍后,我可能现在必须在我的case类上进行演化,添加一个新的可选字段

case class MessageTest (a:String,b:String,c:Option[String]=None)
Run Code Online (Sandbox Code Playgroud)

我希望能够重用我先前存储在我的文件中的数据,对其进行反序列化,并能够恢复案例类的实例(新参数的默认值)

但是当我使用以下代码时

import scala.pickling._
import binary._
val messageback=bytes.unpickle[MessageTest]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

java.lang.ArrayIndexOutOfBoundsException:26 at scala.pickling.binary.BinaryPickleReader $$ anonfun $ 2.apply(BinaryPickleFormat.scala:446)at scala.pickling.binary.BinaryPickleReader $$ anonfun $ 2.apply(BinaryPickleFormat.scala:434)at at scala.pickling.PickleTools $ class.withHints(Tools.scala:498)scala.pickling.binary.BinaryPickleReader.withHints(BinaryPickleFormat.scala:425)scala.pickling.binary.BinaryPickleReader.beginEntryNoTagDebug(BinaryPickleFormat.scala:434)在scala.pickling.binary.BinaryPickleReader.beginEntryNoTag(BinaryPickleFormat.scala:431)


我做错什么了吗 ?

是否存在使我的场景工作的现有方法?

问候

scala scala-pickling

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

使用远程主服务器更新本地主服

我有一个分支,我想合并到远程,最新的master.我的电脑上有一个本地的,过时的主人.我跑了git pull upstream master,它检索了遥控器master,这很棒,正是我想要的.然后,我不假思索地在切换到另一个分支时意外丢弃了这些更改.

虽然在我的本地主人,我已经运行git pull,而git pull upstream master现在许多次,它总是说"已经是最新的." 当它显然不是.起初git pull upstream master工作得很好,但现在它没有,并且机器认为它不是最新的.如何让我的本地主人再次与远程主人一样?

git github

9
推荐指数
2
解决办法
3万
查看次数

Akka中Actorref.tell和inbox.send之间的区别

所以我开始学习Akka并尝试类型安全的例子.因此Hello Akka应用程序具有以下代码:

    import akka.actor.{ ActorRef, ActorSystem, Props, Actor, Inbox }
import scala.concurrent.duration._

case object Greet
case class WhoToGreet(who: String)
case class Greeting(message: String)

class Greeter extends Actor {
  var greeting = ""

  def receive = {
    case WhoToGreet(who) => greeting = s"hello, $who"
    case Greet           => sender ! Greeting(greeting) // Send the current greeting back to the sender
  }
}

object HelloAkkaScala extends App {

  // Create the 'helloakka' actor system
  val system = ActorSystem("helloakka")

  // Create the 'greeter' actor …
Run Code Online (Sandbox Code Playgroud)

scala akka

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

如何指示从Jersey中的REST服务保存到浏览器的文件名?

我正在尝试让REST服务从本地硬盘返回一个zip文件.以下就是我在做什么

@Path("/interface3/{Ent_id}/{esf_app_id}/{esf_app_ver}")
public class Interface3Mock {

    // This method is called if TEXT_PLAIN is request
    @GET
    @Produces("application/zip")
    public Response  callInterface3_text(
            @PathParam("Ent_id") Integer entitlement_id,
            @PathParam("eapp_id") String eapp_id,
            @PathParam("eapp_ver") String eapp_ver) {
        File f = new File("D:\\Documentation\\Documentation.zip");

        String mt = new MimetypesFileTypeMap().getContentType(f);

        return Response.ok(f, mt).build();

    }
}
Run Code Online (Sandbox Code Playgroud)

现在当我使用浏览器即.Internet Explorer和URL中的键http://localhost:9788/mockRESTServer/rest/interface3/123456/k123/l345 我看到一个文件下载对话框,上面写着"你想保存文件l345`.

我想让它问我的zip下载即.D:\\Documentation\\Documentation.zip.但不知何故,它占用了请求URL中的最后一个参数.

java rest jax-rs jersey

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

为什么SBT寻找pom而不是ivy.xml

所以我有一个看起来像这样的build.sbt,这是它的一部分。

resolvers ++= Seq(
                  "Typesafe Repository"               at "http://repo.typesafe.com/typesafe/releases/",
                  "SpringSource Milestone Repository" at "http://repo.spring.io/libs-milestone-local",
                  "Artifactory Repository"    at "http://artifactory.x.y.com:8080/artifactory/xyz/" 
)



libraryDependencies ++= Seq(
                       "com.typesafe.akka"          % "akka-actor_2.11"                         % akkaActorAPIVersion,
                       "org.scalaz"                 % "scalaz-core_2.11"                        % scalazCoreVersion,
                       "org.scalactic"              % "scalactic_2.11"                          % scalacticVersion ,
                       "org.springframework"        % "spring-context"                          % springLibraryVersion,
                       "org.springframework"        % "spring-beans"                            % springLibraryVersion,
                       "org.springframework"        % "spring-core"                             % springLibraryVersion,
                       "org.springframework"        % "spring-context"                          % springLibraryVersion,
                       "org.springframework"        % "spring-web"                              % springLibraryVersion,


                       "com.tom.som.xyz"    % "xyz-abc"                               % Version, 
                       "com.tom.som.xyz"    % "xyz-def"                                % Version,

                       "org.scalatest"              % "scalatest_2.11"                          % scalaTestVersion  % "test",
                       "org.scalamock" …
Run Code Online (Sandbox Code Playgroud)

ivy maven sbt

6
推荐指数
0
解决办法
489
查看次数

Slick 如何在元组上解析 &lt;&gt; 方法

从这个问题链接

我遇到了 Slick 的文档,发现它要求def *在表定义中使用一种方法来获取映射投影。所以这条线看起来像这样

def * = (name, id.?).<>(User.tupled,User.unapply)
Run Code Online (Sandbox Code Playgroud)

光滑的例子在这里

我看到该<>方法是在 a 上调​​用的tuple- 在本例中为 a Tuple2。该方法是ShapedValue在 Slick 代码中的 case 类上定义的。如何找出进行查找的隐式方法?

这是我的进口:

import scala.concurrent.Await
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.Duration
import slick.driver.H2Driver.api._
import slick.lifted.ShapedValue
import slick.lifted.ProvenShape
Run Code Online (Sandbox Code Playgroud)

scala slick

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

为什么fold操作的返回类型是Serializable而不是String

这是一个简单的scala代码

scala> val x = scala.collection.immutable.TreeMap[String, String]("a"->"a", "b"->"b")
x: scala.collection.immutable.TreeMap[String,String] = Map(a -> a, b -> b)
scala> val y = x.fold(""){case (acc: String, (k: String, v: String)) => acc + s""", "$k":"$v""""}
y: java.io.Serializable = , "a":"a", "b":"b"
Run Code Online (Sandbox Code Playgroud)

为什么返回类型y不是String而是java.io.Serializable?

我认为这可能是因为我正在使用模式匹配,匹配可能并非详尽无遗.所以我将代码更改为

scala> val y = x.fold(""){case (acc: String, (k:String, v:String)) => acc + s""", "$k":"$v"""" case _ => ""}
y: java.io.Serializable = , "a":"a", "b":"b"
Run Code Online (Sandbox Code Playgroud)

scala

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

无法从 build.gradle 中的 System.getenv() 访问 mac 上的环境变量

所以我需要根据环境变量在gradle中自定义依赖项。为此,我使用export ENV=test命令创建了一个变量。我做了一个 printenv,我看到它在 mac 上的控制台中列出。但是,当我从 build.gradle 文件执行 System.getenv() 时,它不可见。建议?

java macos groovy gradle

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

Scala前向引用

我是Scala的新手.我正在制作一个游戏,我有一个角色可以访问的类型列表Location.我有一个案例类和一个伴随对象来实现这一目标.

LinkedLocationsinside Location是一个类型数组,Location可以包含一个位置可以导致的任意数量的位置.在这种情况下,1号房间通向2号房间,反之亦然.

case class Location(name: String, desc: String, linkedLocations: Array[Location]){}

object Location {

  val none: Location = Location("none","none",Array(none))
  val room1: Location = Location("room 1","you are in room 1",Array(room2))
  val room2: Location = Location("room 2","you are in room 2",Array(room1))

  room1.linkedLocations.foreach(location=>println(location.name))
}
Run Code Online (Sandbox Code Playgroud)

我试过让它们变得懒惰,但最终会出现堆栈溢出.如何修复这样的引用问题?有没有更好的方法来设计这个?

scala runtime-error forward-reference case-class

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