对我的代码的副作用
Side effects on my code
我目前对编程中的副作用知之甚少,所以我很好奇我下面的代码是否有任何副作用。
class Factorial {
static int factorial(int n) {
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}
public static void main(String args[]) {
int number = 4; // It is the number to calculate factorial
int fact = factorial(number);
System.out.println("Factorial of " + number + " is: " + fact);
}
}
factorial
没有任何副作用,因为它计算一个值并 returns 它,而不修改函数外部的任何内容。另一方面,main
具有打印阶乘的副作用。这是一个很好的设计,因为 factorial
函数不应该有任何副作用;它应该只计算阶乘。
见https://softwareengineering.stackexchange.com/questions/40297/what-is-a-side-effect
我目前对编程中的副作用知之甚少,所以我很好奇我下面的代码是否有任何副作用。
class Factorial {
static int factorial(int n) {
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}
public static void main(String args[]) {
int number = 4; // It is the number to calculate factorial
int fact = factorial(number);
System.out.println("Factorial of " + number + " is: " + fact);
}
}
factorial
没有任何副作用,因为它计算一个值并 returns 它,而不修改函数外部的任何内容。另一方面,main
具有打印阶乘的副作用。这是一个很好的设计,因为 factorial
函数不应该有任何副作用;它应该只计算阶乘。
见https://softwareengineering.stackexchange.com/questions/40297/what-is-a-side-effect