Преобразовать префикс в сообщение
Я пытаюсь преобразовать код 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 не имеет префиксного оператора, как я могу преобразовать этот цикл в постфикс?
1 ответ
Решение
Используйте постфиксный оператор приращения, в этом случае это не имеет никакого значения:
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: Почему операторы ++ и -, а не выражения? А почему постфикс, а не префикс?