小编Seb*_*ger的帖子

Scala:集合中的连续id

我有一个类Edge(如图中所示),具有以下签名.

class Edge(b1: Block, b2: Block, var id: Int, arity: Int)
Run Code Online (Sandbox Code Playgroud)

Block 是一个阶级 - 它做什么,没有意思.

现在,已经s有一些包含一些提供源和目标的对象.我现在想给这些边一个连续的id(从1开始,下一个块应该得到2,依此类推......).

我目前通过首先给所有1作为id来做到这一点,然后我运行一个createLabels重新分配标签的函数(见下文).

val edges = s map { x => new Edge(x.getSrcBlock, x.getDstBlock, 1, getArity(x))}

def createLabels: Unit = {
  var i: Int = 0
  for(e <- edges) {
    e.id = i
    i = i+1
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我不喜欢这个解决方案,因为我想避免这些变量,它是程序风格而不是功能风格.你能给我一个提示,我怎样才能做得更好?

functional-programming scala set

3
推荐指数
1
解决办法
86
查看次数

标签 统计

functional-programming ×1

scala ×1

set ×1