小编om-*_*nom的帖子

如何将此反序列化代码从java转换为scala?

我是一个Scala/Java noob,很抱歉,如果这是一个相对简单的解决方案 - 但我正在尝试访问外部文件中的模型(Apache Open NLP模型),并且不确定我哪里出错了.以下是您在Java中的使用方法,以下是我正在尝试的内容:

import java.io._

val nlpModelPath = new java.io.File( "." ).getCanonicalPath + "/lib/models/en-sent.bin"
val modelIn: InputStream = new FileInputStream(nlpModelPath)
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但尝试基于该二进制文件中的模型实例化对象是我失败的地方:

val sentenceModel = new modelIn.SentenceModel // type SentenceModel is not a member of java.io.InputStream
val sentenceModel = new modelIn("SentenceModel") // not found: type modelIn
Run Code Online (Sandbox Code Playgroud)

我也尝试了一个DataInputStream:

val file = new File(nlpModelPath)
val dis = new DataInputStream(file)
val sentenceModel = dis.SentenceModel() // value SentenceModel is not a member of java.io.DataInputStream
Run Code Online (Sandbox Code Playgroud)

我不确定我缺少什么 - 也许是一些方法将Stream转换为一些二进制对象,我可以从中提取方法?谢谢你的任何指示.

java scala deserialization

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

为什么这段代码返回Unit,而我希望它返回一些其他值?

class Account {
    val id = Account.newUniqueNumber()
    private var balance = 0.0
    def deposit(amount: Double) { balance += amount }
}

object Account {
    private var lastNumber = 0
    private def newUniqueNumber() {
        lastNumber += 1; lastNumber
    }
}

var a1 = new Account()
var a2 = new Account()
println(a1.id)
println(a2.id)

~/myScala % scala -version
Scala code runner version 2.9.1 -- Copyright 2002-2011, LAMP/EPFL
~/myScala % scala Account.scala
()
()
~/myScala %
Run Code Online (Sandbox Code Playgroud)

我期待1,2作为输出...我的推理是......
1.构造一个新的Account对象
2.初始化id字段时,构建伴随对象(仅一次)

所以newUniqueNumber()调用应该返回1和2 ...

有什么指针吗?

谢谢..

scala

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

Scala使用非常大的列表

我有一个大约1176 ^ 3个职位的名单.让smth像

val x = list.length
Run Code Online (Sandbox Code Playgroud)

需要几个小时

当在列表中1271256位置是好的,只需几秒钟.任何人都知道如何加快它?

scala scala-collections

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

scala - 将Map转换为2D数组

我试图转换我的地图:

private var map=Map[String,Double]()
Run Code Online (Sandbox Code Playgroud)

进入2D阵列,但我无法做到这一点.有人可以帮助我,还是给我以及它是如何完成的例子?我也很难创建阵列,所以如果你可以帮助我,我会很高兴.

谢谢你的时间,祝你有个美好的一天!:)

arrays scala

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

功能"除了一个"

如何声明带数字和数字列表的函数,如果列表中没有这样的数字则返回NONE,否则返回list选项(Haskell中的'Maybe')没有这个数字?如果有多于一个这样的数字,则函数必须首先擦除它们中的第一个.

all_except_one : 'a * 'a list -> 'a list option
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做:\我问任何语言的代码,只是关于函数式算法的一些提示(最初我必须在SML中解决这个问题).此外,我不能在我的任务中使用高阶函数.

algorithm functional-programming sml

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

clojure是否支持返回类型的方法重载?

当我偶然发现这两个函数时,我正在阅读一些风暴代码.它们的名称和参数都相同,但看起来它们的返回类型不同.稍微简化的代码是:

(defn- foo "Returns list of sets of things"
  [^Bar xs]
  (->> ...
       (map set)))

(defn- foo "Returns mutable set of sets of things"
  [^Bar xs]
  (->> ...
       (map set)
       (HashSet.)
       ))
Run Code Online (Sandbox Code Playgroud)

任何人都可以了解这里发生的事情吗?

overloading clojure

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

scala抽象类:无法访问构造函数参数

我无法访问函数体中的类构造函数参数.在Scala中,构造函数参数成为具有适当的get/set定义的类成员.但在下面的例子中,我无法引用构造函数参数'p'.有什么我做错了吗?我需要加前缀吗?

abstract class MyFunc(in: Int) extends Function1[Int, Boolean] {
    val x : Int = 10
}

val dunc = new MyFunc(10) {
  def apply(p: Int): Boolean = {
    p % in == 0  << compilation error. 'in' value not found
    // p % x == 0  << compiles fine
  }
}
Run Code Online (Sandbox Code Playgroud)

我能够访问显式定义的成员变量,但不能访问构造函数定义的变量.为什么?

scala

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

collection.mutable.HashMap有一个有效的大小方法吗?

我正在使用collection.mutable.Map默认值collection.mutable.HashMap.我需要跟踪该地图中的项目数量,因此我想知道这个类是否已经实现了快速size响应,这将使我不必自己跟踪它.

这与useSizeMap方法有关吗?不幸的是,这种方法的文档是如此模糊,确定任何东西都是完全没用的.

collections scala scala-collections

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

密码有时从github克隆!在里面

我有一个密码!在它和我尝试使用以下语法从git克隆存储库时:

  git clone https://username:password!@github.com/org/repository.git
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

 bash: !@github.com/org/repository.git: event not found
Run Code Online (Sandbox Code Playgroud)

如何在不更改密码的情况下修复它?

我在Linux.我在Windows中使用它没有任何问题.

linux git bash

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

为什么新的失败?

在scala中这没关系

val v = Vector(1,2,3)
Run Code Online (Sandbox Code Playgroud)

这不行

val v = new Vector(1,2,3); 
Run Code Online (Sandbox Code Playgroud)

你得到:

java.lang.NullPointerException
                                                  //|   at scala.collection.immutable.VectorIterator.next(Vector.scala:660)
                                                  //|   at scala.collection.Iterator$$anon$10.next(Iterator.scala:312)
                                                  //|   at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
                                                  //|   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
                                                  //|   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
                                                  //|   at scala.
Run Code Online (Sandbox Code Playgroud)

为什么?

scala scala-collections

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