我们刚刚发布了我们的库(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) 我很擅长使用框架,函数式编程和Iteratee I/O,所以也许我的问题非常缺乏主题甚至是愚蠢的.
我想将大文本文件作为流上传到第三方,同时提取有关此文件的元数据(基于其内容,简化说它是一个csv文件).
我已经编写了两个工作体解析器:Iteratee[Array[Byte], B]它包含写入逻辑和Iteratee[Array[Byte], MetaData]包含MetaData提取逻辑的解析器.你能告诉我如何将这两个解析器结合起来处理同时写入和提取内容
我正在尝试使用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)