Array.isDefinedAt 用于 scala 中的 n 维数组

2023-12-29

有没有一种优雅的表达方式

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(使用前将#替换为@)

Array.isDefinedAt 用于 scala 中的 n 维数组 的相关文章

随机推荐