小编Mar*_*kus的帖子

构建自动化 - sbt:针对多个依赖项进行编译/测试

我们刚刚发布了我们的库(Mango)的部分内容,它是围绕Google Guava Java库的常用库的Scala包装器.

该库目前依赖于Google Gauva 14.0,但我们也想添加对其他版本的支持.

sbt(Scala和Java项目的构建自动化工具)中是否有一种方法可以创建类似于配置文件的maven,其中每个配置文件针对相应的Guava依赖项的不同版本进行编译,因此我们可以将其包含在持续集成测试矩阵中?

理想情况下,应该可以通过以下方式调用sbt:

sbt test guava:14.0
sbt test guava:13.0
...
Run Code Online (Sandbox Code Playgroud)

build-automation scala maven sbt guava

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

用一个枚举器喂两个iteratee

我很擅长使用框架,函数式编程和Iteratee I/O,所以也许我的问题非常缺乏主题甚至是愚蠢的.

我想将大文本文件作为流上传到第三方,同时提取有关此文件的元数据(基于其内容,简化说它是一个csv文件).

我已经编写了两个工作体解析器:Iteratee[Array[Byte], B]它包含写入逻辑和Iteratee[Array[Byte], MetaData]包含MetaData提取逻辑的解析器.你能告诉我如何将这两个解析器结合起来处理同时写入和提取内容

scala playframework iterate

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

添加不可变的向量

我正在尝试使用scalas immutable collection更多地工作,因为这很容易并行化,但我遇到了一些新手问题.我正在寻找一种从操作中创建(有效)新Vector的方法.确切地说,我想要类似的东西

val v : Vector[Double] = RandomVector(10000)
val w : Vector[Double] = RandomVector(10000)
val r = v + w
Run Code Online (Sandbox Code Playgroud)

我测试了以下内容:

// 1)
val r : Vector[Double] = (v.zip(w)).map{ t:(Double,Double) => t._1 + t._2 }

// 2)
val vb = new VectorBuilder[Double]()    
var i=0
while(i<v.length){
  vb += v(i) + w(i)
  i = i + 1
}
val r = vb.result
Run Code Online (Sandbox Code Playgroud)

}

与使用Array的工作相比,两者都需要很长时间:

[Vector Zip/Map   ] Elapsed time 0.409 msecs
[Vector While Loop] Elapsed time 0.374 msecs
[Array While Loop …
Run Code Online (Sandbox Code Playgroud)

scala scala-collections

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