Variables 为什么可以';t变量名是否被释放以供将来使用?

Variables 为什么可以';t变量名是否被释放以供将来使用?,variables,naming,strong-typing,Variables,Naming,Strong Typing,为什么强类型编程语言(例如C系列)不允许完全取消分配变量名?也就是说,假设您有一个变量intx=5。为什么没有像remove x或deallocateName x这样的代码语句,以便您以后可以将x指定为其他类型,例如string x=“Hello”?我的猜测是,因为它与这些正在编译而不是解释的语言有关(例如,Ruby或Python,您可以将相同的变量分配给不同的类型),或者可能是因为这将从整体上打破严格类型化的理念。代码应该编写为便于维护的可读代码,因此鉴于每个变量有不同的用途,它应该有不同的名

为什么强类型编程语言(例如C系列)不允许完全取消分配变量名?也就是说,假设您有一个变量
intx=5
。为什么没有像
remove x
deallocateName x
这样的代码语句,以便您以后可以将x指定为其他类型,例如
string x=“Hello”
?我的猜测是,因为它与这些正在编译而不是解释的语言有关(例如,Ruby或Python,您可以将相同的变量分配给不同的类型),或者可能是因为这将从整体上打破严格类型化的理念。

代码应该编写为便于维护的可读代码,因此鉴于每个变量有不同的用途,它应该有不同的名称。。。您可以通过使用其他作用域来限制变量名的作用域(在许多语言中):
{int x=5;}{string x=“Hello”}
。变量结束于结束符,因此删除变量只会隐藏代码,使代码更难理解和调试。@Phil1970是的,我已经知道这一点,但假设以下代码:
Object[]things={person,dog,cat,car}
,其中每个元素都有自己的类型。例如,您可能希望生成名为
currentElement
的变量,而不是将其分配给常规类型并使用强制转换或泛型,您可能希望取消分配名称
currentElement
并重新分配它。我知道这听起来可能不必要,但有时它可以使代码更清晰易读。此外,在其他语言(如弱类型语言)中,同名变量也可以被分配不同的类型,因此,同名变量可以用于不同的用途。