引用函数中传递的值

时间:2015-10-26 03:45:17

标签: java function syntax

我正在处理递归,我想知道是否还有另一个函数内部引用变量(即函数的结果)。以下是相关代码的一部分。

# functional way
ListNode x = maxNode(list.next);
if(list.info.compareTo(x.info) < 0) {
    return x;
}

# ideal way
if(list.info.compareTo(ListNode y = maxNode(list.next)) < 0) {
    return y;
}

1 个答案:

答案 0 :(得分:0)

可以预先定义变量,然后在if语句中设置

ListNode y;
if(list.info.compareTo((y = maxNode(list.next)).info) < 0)
    return y;

但是,只需先手动设置它就会更具可读性

ListNode y = maxNode(list.next);
if(list.info.compareTo(y.info))
    return y;

我只建议在循环的检查语句中进行设置,因为在这种情况下它可以帮助提高可读性

ListNode y = list;
while((y = y.next) != null)
    //dostuff

这种形式的while循环也可以更容易地表示为for循环

for(ListNode y = list; y != null; y = y.next)
    //dostuff