函數語言程式設計 - 純函式
如果函式滿足以下兩個條件,則該函式被認為是純函式 −
它始終對給定輸入返回相同的結果,並且其結果完全取決於傳遞的輸入。
它沒有副作用,這意味著它不會修改呼叫者實體的任何狀態。
示例 - 純函式
public class FunctionTester {
public static void main(String[] args) {
int result = sum(2,3);
System.out.println(result);
result = sum(2,3);
System.out.println(result);
}
static int sum(int a, int b){
return a + b;
}
}
輸出
5 5
此處 sum() 是一個純函式,因為它在不同時間傳遞 2 和 3 作為引數時始終返回 5,並且沒有副作用。
示例 - 非純函式
public class FunctionTester {
private static double valueUsed = 0.0;
public static void main(String[] args) {
double result = randomSum(2.0,3.0);
System.out.println(result);
result = randomSum(2.0,3.0);
System.out.println(result);
}
static double randomSum(double a, double b){
valueUsed = Math.random();
return valueUsed + a + b;
}
}
輸出
5.919716721877799 5.4830887819586795
此處 randomSum() 是一個非純函式,因為當在不同時間傳遞 2 和 3 作為引數時,它會返回不同的結果,並且也會修改例項變數的狀態。
廣告