今天我发现了c#的一个“功能”:
错误CS0136:无法在此范围内声明名为
foo
的局部变量,因为它会为foo
赋予不同的含义,child
已在if (false) { int foo = 42; } int foo = 1337;
范围内用于表示某些内容其他
可以通过尝试编译此代码段来简单地重现:
foo
为什么我不能在父作用域中定义foo
?子范围中的for index, row in df.iterrows():
if df.at[row, index] == 'something':
df.at[row, index] = df.at[row, index] + 'add a string'
else:
df.at[row, index] = df.at[row, index] + 'add a value'
在父范围内不可见,也不会被分配,因此它在任何适当的语言中都是绝对合法的。我错过了什么?这背后的原因是什么?