为什么print()有副作用?

Luo*_*inh 2 functional-programming scala

为什么Scala中的print()方法有副作用?它只是阅读,而不是写.换句话说,print()不会改变任何东西.

我似乎是一个"愚蠢"的问题,但有时小事情会导致大动作.

Pab*_*lgo 7

不对函数有副作用意味着对它的调用可以由其返回值替换.print没有返回任何值,所以如果它是纯净的(它没有副作用)它可以被NOT-OPERATION取代.

但是,正如您在终端中看到的那样,当您呼叫print某事时:某些文本会在屏幕上打印出来.这不是非操作,因此print有副作用.