有没有一种优雅的表达方式
val a = Array.fill(2,10) {1}
def do_to_elt(i:Int,j:Int) {
if (a.isDefinedAt(i) && a(i).isDefinedAt(j)) f(a(i)(j))
}
在斯卡拉?
我建议您不要将数组的数组用于二维数组,原因有三个。首先,它允许不一致:并非所有列(或行,随意选择)都需要具有相同的大小。其次,它效率低下——你必须遵循两个指针而不是一个。第三,很少有库函数可以透明且有效地处理作为 2D 数组的数组的数组。
鉴于这些事情,您应该使用支持二维数组的库,例如scalala https://github.com/scalala/Scalala,或者你应该自己写。如果你做了后者,除其他外,这个问题就会神奇地消失。
所以就优雅而言:不,没有办法。但除此之外,你开始的道路还包含lots不优雅的;你可能最好尽快离开它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)