副作用 (计算机科学) 在计算机科学中函数副作用side effect指当调用函数时除了返回可能的函数值之外还对主调用函数产生附加的影响例如修改全局变量函数外的变量修改参数向主调方的终端管道输出字符或改变外部存储信息等 在某些情况下函数副作用会给程序设计带来不必要的麻烦给程序带来十分难以查找的错误并降低程序的可读性与可移植性严格的函数式语言要求函数必须无任何副作用但功能性静态函数本身的目的正是产生某些副作用在生命科学中副作用往往带有贬义但在计算机科学中副作用有时正是主要作用 下面是函数的副作用相关的几个概念纯函数非纯函数参照透明性