【问题标题】:How to Destructue a Pair object into two variables in Kotlin如何在 Kotlin 中将 Pair 对象解构为两个变量
【发布时间】:2020-12-22 01:23:08
【问题描述】:

我有一个返回Pair的函数:

fun createTuple(a: Int, b: Int): Pair<Int, Int> {
    return Pair(a, b)
}

我想用这个函数初始化变量ab,然后在循环中重新赋值:

var (a, b) = createTuple(0, 0)
for (i in 1..10) {
    createTuple(i, -i).let{
       a = it.first
       b = it.second
    }
    println("a=$a; b=$b")
}

使用let 似乎很尴尬。有没有更好的方法来解开 Pair 内循环?

以下行无法编译:

(a, b) = createTuple(i, -i)
a, b = createTuple(i, -i)

【问题讨论】:

  • 不支持解构赋值。在几年前的跟踪器上有一个未解决的问题。如果您使用run 而不是let,则可以删除its。
  • 你的问题很不清楚你想要实现什么。在这里,你可以做for (i in 1..10) { a = i; b = -i }
  • @SiddharthSharma 这是一个最小的例子。我的问题是关于解构分配的,Tenfour04 回答了它
  • @Sergey 哈哈好吧,那么你的问题可能会更小。例如,“如何将Pair 对象解构为两个现有变量”

标签: kotlin tuples


【解决方案1】:

var (a, b) = createPair(0, 0) 对我来说编译得很好。

您的问题可能是使用createTuple(i, -i) 而不是createPair(i, -i)

【讨论】:

  • 抱歉,这是一个复制/粘贴错误。我的回答是关于解构分配,请参阅 Tenfour04 评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多