我真的不知道为什么输出代码:
State_Values = List[];
Print[Length[{}]]
Print[Length[State_Values]];
是:
0
2
无法提出任何理由。 也许这是非常愚蠢的,但我看不到。谢谢。
答案 0 :(得分:10)
不是傻瓜,但你犯了一个微妙的错误。 State_Values
中的下划线将其变为Pattern
,而不是List
。您可以使用函数Head[]
找到它。
stateValues = List[];
Length[stateValues]
Length[{}]
Out[11]= 0
Out[12]= 0
正如您所看到的,这是正确的和预期的。但是,引入下划线,这一切都打破了:
state_Values = List[];
Length[state_Values]
Head[state_Values]
Head[stateValues]
Out[16]= 2
Out[17]= Pattern
Out[18]= List
您可以更轻松地查看是否使用了Mathematica的GUI版本,因为它以不同的方式突出显示Pattern
个变量。