将前缀转换为post

时间:2017-08-28 14:52:00

标签: go postfix-operator

我正在尝试将一些C代码转换为Go。

for i := l + 1; i < r; ++i {
    ans = max(ans, nums[l]*nums[i]*nums[r]+maxCoin(dp, l, i, nums)+maxCoin(dp, i, r, nums))
}

Go没有前缀运算符,如何将此循环转换为使用postfix?

1 个答案:

答案 0 :(得分:2)

使用后缀increment statement,在这种情况下没有任何区别:

for i := l + 1; i < r; i++ {
    ans = max(ans, nums[l]*nums[i]*nums[r]+maxCoin(dp, l, i, nums)+maxCoin(dp, i, r, nums))
}

差异只在你使用递增/递减运算符形成的表达式的结果时才有意义,但是因为在Go中它们甚至不是运算符而是语句,所以它并不重要。有关推理,请参阅FAQ: Why are ++ and -- statements and not expressions? And why postfix, not prefix?