gpt4 book ai didi

java - 为什么Java和JS在条件下不允许变量声明

转载 作者:行者123 更新时间:2023-12-02 11:14:11 24 4
gpt4 key购买 nike

 int a; // why can't I put this in the condition itself
if((a = readData()) > 0){
// do something..
}

我想知道为什么Java和javascript不允许我在 (condition)中声明我的变量。我知道这与以下事实有关:变量声明必须是第一行(除了 for循环除外),但是潜在的原因是什么呢? In C++ it seems like they can do it。我不了解C++,如果我误解了,我深表歉意。

最佳答案

原因是范围规则的简单性。如果允许在条件内声明变量,则必须定义此类变量的范围,以及声明具有值的含义。两者都不是直接的。在已经定义的表达式中要求变量很简单,并且没有缺点。允许这样做很复杂,并且会混淆源代码。当然,这是后验推理。语言设计师可能还有其他原因。

你为什么在乎?底线:因为JLS这么说。

关于java - 为什么Java和JS在条件下不允许变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41539690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com