如果一句话来说的话,side effects就是编程语言的函数比数学概念上的函数多出来的那些事情。
EDIT: 某些语境下,你调用一个printf,返回值是它的“作用”,往屏幕上输出文字是它的“副作用”。
其实是提问者你自己对中文中副作用的理解有偏差。副作用不是负作用,就是主要作用之外所不可避免产生的作用。
举个例子,以前有个医生发明了一种药用来治疗心绞痛的,这个时候治疗心绞痛就是主要作用。但是后来发现大家都喜欢他的一个副作用,使得不可描述的部位变得坚挺和持久。所以后来这个药物就以不可描述用途上市了。这时候副作用就成了主要作用,而原来的主要作用反而成了副作用。