golang的初学者相信和我会遇到同样的问题,如下图在C语言中没问题,但在go语言中却报错
,经过查找资料发现
我们可以把C语言中的 i++ 看成一个表达式;而go语言中是一条语句
表达式是一段可以被求值的代码,也就是可以有接收者;而语句是可以被执行的代码,不一定会有接收者。从上面的例子来看,Go中的i++是语句,它不能有接收者,相当于一条可以被编译器识别的命令,类似于break,goto这种语句,所以在程序在编译期间就会报错。
故go语言中i++没有返回值,不能被接收
想从汇编层面理解请跳转:https://zhuanlan.zhihu.com/p/361355844