在go中,++/--并不像在c中作为操作符,而是作为语句出现。下面是一个关于Print的范例:
在c中,package mainimport("fmt")var num int = 0func main(){origin := numfmt.Println(num + 1)//fmt.Println(num++)fmt.Printf("num--: %v, num: %v, num++: %v\n", SubSelf(), origin, AddSelf())fmt.Printf("%d\n", func ()int{num++return num}())fmt.Println(num + 1)}func SubSelf() int{num--return num}func AddSelf() int {num++return num}
printf("%d", num++);
这样的语句是合法的,而在go中不被允许。因此,也不再有num++河++num的区别,只有前者是合法的。如果仍然想使用printf("%d", num++);的语法,只好参照范例代码,使用函数或者匿名函数(闭包)。