golang - Why ++ and — not work in expressions?

前端 未结 3 408
清酒与你
清酒与你 2021-01-26 12:45

What we take for granted in other languages and almost expect it to work in go, won\'t work - its almost so natural to do this, so why isn\'t the compiler happy? Just feeling li

3条回答
  •  遥遥无期
    2021-01-26 13:20

    Specifically, ++ and -- are statements because it can be very difficult to understand the order of evaluation when they're in an expression.

    Consider the following:

    // This is not valid Go!
    x := 1
    x = x++ + x
    y := 1
    y = ++y + y
    

    What would you expect x to be? What would you expect y to be? By contrast, the order of evaluation is very clear when this is a statement.

提交回复
热议问题