6

コードの出力の理由が本当にわかりません:

State_Values = List[];
Print[Length[{}]]
Print[Length[State_Values]];

は :

0 
2

理由を提示することはできません。多分それは非常にばかげているかもしれませんが、私にはわかりません。ありがとうございました。

4

1 に答える 1

11

愚かではありませんが、あなたは微妙な間違いを犯しました。のアンダースコアは、ではなくState_Valuesに変換します。関数 を使用してこれを見つけることができます。PatternListHead[]

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

PatternMathematica の GUI バージョンを使用している場合は、変数の強調表示が異なるため、はるかに簡単に確認できます。

于 2012-06-29T16:54:19.083 に答える