scala, Passing an operator as argument of a function

前端 未结 3 980
说谎
说谎 2021-02-20 08:06

I have this code:

for( i <- 0 to 8){
  ((numbers(i) - i)/3).abs + ((numbers(i) - i)%3).abs
}

and I would like to do, as the title says, some

3条回答
  •  隐瞒了意图╮
    2021-02-20 08:37

    Edited/Update:

    Being concise, the shortest way to do it is:

    def doStuff(a: Int, b: Int, op: (Int, Int) => Int) = {op(a - b, 3).abs}

    doStuff(4,1,_%_)

    So you can doStuff(numbers(i), i, _ / _) + doStuff(numbers(i), i, _ % _)

提交回复
热议问题