我希望添加一个整数元组列表,即给定arity元组的输入列表k,生成一个arity元组k,其字段是列表中元组的相应字段的总和.
List( (1,2,3), (2,3,-3), (1,1,1))
Run Code Online (Sandbox Code Playgroud)
(4, 6, 1)
Run Code Online (Sandbox Code Playgroud)
我试图使用foldLeft,但我无法编译.现在,我正在使用for循环,但我正在寻找一个更简洁的解决方案.
为什么我不能在scala的辅助构造函数中使用this.getClass?还有其他选择吗?
更具体地说,我试图在辅助构造函数中调用slf4j的LoggerFactory.getLogger.我现在有一个hack,我被迫将一个logger对象传递给构造函数.
一个简单的人为例子(不编译),它显示了我想要做的事情:
class A (numbers : Double) {
val logger = LoggerFactory.getLogger(this.getClass)
def this(numbersAsStr: String) = this (try { s.toDouble) } catch { case _ => LoggerFactory.getLogger(this.getClass).error("Failed to convert"); 0 }
}
Run Code Online (Sandbox Code Playgroud) 在Scala中,是否存在表达以下Java迭代的惯用方法
int n = 10;
for(i=0; i<n-1; i++) {
for(j=i+1; j<n; j++) {
...
}
}
Run Code Online (Sandbox Code Playgroud) 我正在与Java库接口,它接受double []作为参数并向数组添加元素.我尝试使用JavaConversions创建Scala可变数组,但它无法管理此转换.有任何想法吗?
Java的:
public static double libraryFn(double[] numbers) {
.....
numbers[0] = 1.0
}
Run Code Online (Sandbox Code Playgroud)
斯卡拉:
def caller() {
// Does not work
val myNumbers = new Array[java.lang.Double](1)
libraryFn(myNumbers)
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复.更仔细地查看库源,看起来该库有一个bug并且根本不是scala/java问题.