Преобразовать префикс в сообщение

Я пытаюсь преобразовать код 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: Почему операторы ++ и -, а не выражения? А почему постфикс, а не префикс?

Другие вопросы по тегам