我是一个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转换为一些二进制对象,我可以从中提取方法?谢谢你的任何指示.
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 ...
有什么指针吗?
谢谢..
我有一个大约1176 ^ 3个职位的名单.让smth像
val x = list.length
Run Code Online (Sandbox Code Playgroud)
需要几个小时
当在列表中1271256位置是好的,只需几秒钟.任何人都知道如何加快它?
我试图转换我的地图:
private var map=Map[String,Double]()
Run Code Online (Sandbox Code Playgroud)
进入2D阵列,但我无法做到这一点.有人可以帮助我,还是给我以及它是如何完成的例子?我也很难创建阵列,所以如果你可以帮助我,我会很高兴.
谢谢你的时间,祝你有个美好的一天!:)
如何声明带数字和数字列表的函数,如果列表中没有这样的数字则返回NONE,否则返回list选项(Haskell中的'Maybe')没有这个数字?如果有多于一个这样的数字,则函数必须首先擦除它们中的第一个.
all_except_one : 'a * 'a list -> 'a list option
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做:\我问任何语言的代码,只是关于函数式算法的一些提示(最初我必须在SML中解决这个问题).此外,我不能在我的任务中使用高阶函数.
当我偶然发现这两个函数时,我正在阅读一些风暴代码.它们的名称和参数都相同,但看起来它们的返回类型不同.稍微简化的代码是:
(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)
任何人都可以了解这里发生的事情吗?
我无法访问函数体中的类构造函数参数.在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)
我能够访问显式定义的成员变量,但不能访问构造函数定义的变量.为什么?
我正在使用collection.mutable.Map默认值collection.mutable.HashMap.我需要跟踪该地图中的项目数量,因此我想知道这个类是否已经实现了快速size响应,这将使我不必自己跟踪它.
这与useSizeMap方法有关吗?不幸的是,这种方法的文档是如此模糊,确定任何东西都是完全没用的.
我有一个密码!在它和我尝试使用以下语法从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中使用它没有任何问题.
在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)
为什么?