Kotlin/Multik 库:类命名以及如何索引数组中的元素

问题描述 投票:0回答:1

与通过 Multik 库在 Kotlin 中使用多维数组相关的几个问题。

第一个问题:为什么需要在这里导入

mk
zeros
才能访问
mk.zeros
?我认为导入
mk
就足够了。我想这是一个通用的 Kotlin 问题,而不是 Multik 特有的问题。顺便说一下,在这个例子中,我在 Linux 上的
kotlin
命令行界面中工作,并使用包含 Multik 内容的合适类路径。

>>> import org.jetbrains.kotlinx.multik.api.mk
>>> mk.zeros <Double> (4, 3)
error: unresolved reference: zeros
mk.zeros <Double> (4, 3)
   ^
>>> import org.jetbrains.kotlinx.multik.api.zeros
>>> mk.zeros <Double> (4, 3)
res3: org.jetbrains.kotlinx.multik.ndarray.data.NDArray<kotlin.Double, org.jetbrains.kotlinx.multik.ndarray.data.D2> = [[0.0, 0.0, 0.0],
[0.0, 0.0, 0.0],
[0.0, 0.0, 0.0],
[0.0, 0.0, 0.0]]

第二个问题,这次是针对 Multik 的。成功创建

res3
后,我该如何索引它的元素?

>>> res3[0, 0]
error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
public operator fun MatchGroupCollection.get(name: String): MatchGroup? defined in kotlin.text
res3[0, 0]
^
error: no get method providing array access
res3[0, 0]
    ^

看起来没有定义方括号操作;我无法找到另一个用于索引的函数。我很困惑,因为 Multik Github 自述文件 (https://github.com/Kotlin/multik) 中显示的示例似乎显示使用方括号进行索引。

kotlin multidimensional-array
1个回答
0
投票
  1. zeros
    Multik 上的
    扩展函数
    (类型别名
    mk
    ),因此您需要显式导入

  2. res3[0, 0]
    是不正确的语法。应该是
    res3[0][0]

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.