在 main 之外的方法中使用 print 语句是否更有效,或者它是否重要?
Is it more efficient to have a print statement in a method besides main or does it matter?
这可能是个愚蠢的问题,但我是从一本书中自学的,我注意到很多示例在 main 以外的方法中都有 print 语句。我想知道你把它放在哪里会不会有什么不同,所以当我想到这个问题时,我粘贴了我正在处理的程序。让 getArea 方法打印区域或将其保留在 main 中对我来说效率更高吗?
private static Scanner in;
private static double s;
private static double a;
public static void main(String[] args) {
in = new Scanner(System.in);
DecimalFormat two = new DecimalFormat("#.##");
System.out.println("Enter the length from center to vertex: ");
double r = in.nextDouble();
s = getSide(r);
a = getArea(s);
System.out.println("The area of a pentagon of radius "+r+" is "+two.format(a));
}
public static double getSide(double radius){
double side = 2 * radius * Math.sin((Math.PI) / 5);
return side;
}
public static double getArea(double side){
double area = (5 * Math.pow(side, 2)) / (4 * Math.tan((Math.PI) / 5));
return area;
}
效率没有区别。这可以从一个函数无法找到调用它的其他函数这一事实中看出。它不可能以不同的方式表现。 (堆栈自省和内联除外...)
从架构上讲,最好尝试保持方法的纯净,因为如果不需要,它们不会引起副作用。这使得程序更容易理解。一个纯函数接受一些值和 returns 一个值而不改变任何其他东西。打印是一种副作用,因此请尽量将其排除在计算式函数之外。
打印操作是一个简单的日志记录功能,没有任何性能penalties/benefits。每当您编写代码时,您都可以问自己以下问题:
- 此代码是否应由其他人使用? (不应插入日志记录)
- 是否应使用应用程序日志调试此代码(应插入日志记录)
- 您要打印的消息要说明什么? (要做的事情插在方法前,执行结果插在方法后,执行过程插在方法本身)
这可能是个愚蠢的问题,但我是从一本书中自学的,我注意到很多示例在 main 以外的方法中都有 print 语句。我想知道你把它放在哪里会不会有什么不同,所以当我想到这个问题时,我粘贴了我正在处理的程序。让 getArea 方法打印区域或将其保留在 main 中对我来说效率更高吗?
private static Scanner in;
private static double s;
private static double a;
public static void main(String[] args) {
in = new Scanner(System.in);
DecimalFormat two = new DecimalFormat("#.##");
System.out.println("Enter the length from center to vertex: ");
double r = in.nextDouble();
s = getSide(r);
a = getArea(s);
System.out.println("The area of a pentagon of radius "+r+" is "+two.format(a));
}
public static double getSide(double radius){
double side = 2 * radius * Math.sin((Math.PI) / 5);
return side;
}
public static double getArea(double side){
double area = (5 * Math.pow(side, 2)) / (4 * Math.tan((Math.PI) / 5));
return area;
}
效率没有区别。这可以从一个函数无法找到调用它的其他函数这一事实中看出。它不可能以不同的方式表现。 (堆栈自省和内联除外...)
从架构上讲,最好尝试保持方法的纯净,因为如果不需要,它们不会引起副作用。这使得程序更容易理解。一个纯函数接受一些值和 returns 一个值而不改变任何其他东西。打印是一种副作用,因此请尽量将其排除在计算式函数之外。
打印操作是一个简单的日志记录功能,没有任何性能penalties/benefits。每当您编写代码时,您都可以问自己以下问题:
- 此代码是否应由其他人使用? (不应插入日志记录)
- 是否应使用应用程序日志调试此代码(应插入日志记录)
- 您要打印的消息要说明什么? (要做的事情插在方法前,执行结果插在方法后,执行过程插在方法本身)