我知道,我应该使用()按照惯例,如果一个方法有副作用括号不纯函数
def method1(a: String): Unit = {
//.....
}
//or
def method2(): Unit = {
//.....
}
我必须做同样的事情,如果一个方法没有副作用,但它不是纯粹的,没有任何参数,当然,每次调用它时都会返回不同的结果?
def method3() = getRemoteSessionId("login", "password")
我不知道“副作用”的确切定义,但非纯函数如何产生没有副作用的结果呢?如果一个函数使用随机数生成器或从任何I/O读取,我会认为这是一个副作用。 – ghik
*在计算机科学中,如果函数或表达式除了返回值之外,还会修改某个状态**或与外部调用函数有可观察的交互,维基百科](https://en.wikipedia.org/wiki/Side_effect_(computer_science)) –
@ om-nom-nom,为什么不认为外部世界的功能可以是纯粹的? –