【发布时间】:2014-10-31 06:14:34
【问题描述】:
如果我有 Java 方法:
public void foo (int a)
{
//do something
}
那我调用这个方法:
foo (2/0) or foo (2/4)
2/0 或 2/4 何时得到评估?在进入函数输入之前是否对其进行了评估?还是在调用函数之前对其进行评估? (那么它是在函数内部还是外部评估?)
此外,考虑:
if (true) then { A } else { B }
我知道 A 将被评估。但是,即使 java 是一种渴望的语言,B 也不会被评估?
谢谢!
【问题讨论】:
-
此代码不是 Java。如果您发布 Java 代码 - 请确保它首先编译!
-
java 使用按值调用机制,即当你调用一个使用惰性求值策略的函数时,首先对参数进行求值,然后将其传递给函数。
标签: java lazy-evaluation