所以我在 scala 中导入包时遇到问题。我从 github 下载了包,轻柔,因为我想从概率分布中采样。
我习惯了 Python,我可以在其中下载一个包,将其包含在路径中,然后将其导入代码中。所以我对使用单独的“构建工具”来使用 3rd 方包的想法非常陌生。
所以我从github下载了“breeze”源代码,安装了sbt,然后在breeze的源代码中,我运行了sbt,然后我使用“assembly”命令得到了一个breeze的.jar。
如果我想使用 scala 解释器,我可以很好地导入包
scala -cp breeze-master/target/scala-2.11/breeze-parent-assembly-0.8.jar
问题是我想在一个单独的代码中使用这个包,我在一个名为 Chromosome.scala 的文件中编写。当我尝试导入包时(如下所示),出现错误:
error: not found: object breeze
这是我的代码:
// Chromosome.scala
import breeze.stats.distributions._
class Chromosome(s:Int, bitstring:Array[Boolean]) {
val size:Int = s;
val dna:Array[Boolean] = bitstring;
var fitness:Int = 0;
def mutate(prob:Float):Unit = {
// This method will randomly "mutate" the dna sequence by flipping a bit.
// Any individual bit may be flipped with probability 'pm', usually small.
val pm:Float = prob;
// The variable bern is an instance of a Bernoulli random variable,
// whose probability parameter is equal to 'pm'.
var bern = new Bernoulli(pm);
//Loop through the 'dna' array and flip each bit with probability pm.
for (i <- 0 to (size - 1)) {
var flip = bern.draw();
if (flip) {
dna(i) = !(dna(i));
}
}
}