方括号(圆括号)会改变方法的顺序吗?
Do brackets (parentheses) change the order of methods?
与 'proper' 数学类似,使用括号是否会改变方法的顺序。
例如,
System.out.println(Math.abs(Math.min(-6,3)));
给出输出 6。这是因为 math.min 在计算绝对值之前完成它的工作吗?
我想确保情况确实如此,这不是数学上的怪癖 class。
谢谢
这不是括号排序的结果。虽然在使用运算符时括号确实可以用来指定运算顺序,但这是语法问题。
Java中的方法调用是通过methodName(arguments)
完成的,这意味着您无法用不同的方式表达您想要表达的内容。这种括号不用于表示优先级,但它们确实是语言语法的一部分。
由于方法需要在调用发生之前评估其参数,因此 Math.min
必须在 Math.abs
之前评估。
是的,使用 chained/nested 方法调用会更改方法的顺序。最里面的方法将首先执行,然后是它周围的方法,依此类推。必须首先评估内部方法,以便它周围的方法实际上有一个值作为参数传递。如果方法链从外部开始,第一个方法的 arguments/parameters 将不会被计算,因此计算机将不知道要传递给该方法的值是什么。
是的,首先计算 Math.min,然后计算 Math.abs。您在数学中学到的规则 class 也适用于编程。
Math.abs(Math.min(-6,3));
Math.abs(-6);
6
与 'proper' 数学类似,使用括号是否会改变方法的顺序。
例如,
System.out.println(Math.abs(Math.min(-6,3)));
给出输出 6。这是因为 math.min 在计算绝对值之前完成它的工作吗?
我想确保情况确实如此,这不是数学上的怪癖 class。
谢谢
这不是括号排序的结果。虽然在使用运算符时括号确实可以用来指定运算顺序,但这是语法问题。
Java中的方法调用是通过methodName(arguments)
完成的,这意味着您无法用不同的方式表达您想要表达的内容。这种括号不用于表示优先级,但它们确实是语言语法的一部分。
由于方法需要在调用发生之前评估其参数,因此 Math.min
必须在 Math.abs
之前评估。
是的,使用 chained/nested 方法调用会更改方法的顺序。最里面的方法将首先执行,然后是它周围的方法,依此类推。必须首先评估内部方法,以便它周围的方法实际上有一个值作为参数传递。如果方法链从外部开始,第一个方法的 arguments/parameters 将不会被计算,因此计算机将不知道要传递给该方法的值是什么。
是的,首先计算 Math.min,然后计算 Math.abs。您在数学中学到的规则 class 也适用于编程。
Math.abs(Math.min(-6,3));
Math.abs(-6);
6