Luaでのプログラミングのテーブルの初議論、彼らが言及します:
テーブルには任意の値でインデックスを付けることができるので、配列のインデックスは任意の数値で始めることができます。ただし、Luaでは配列を1から開始するのが慣例であり(Cのように0から開始するのではなく)、いくつかの機能がこの規則に従います。
後で、データ構造の章で、彼らは再びほぼ同じことを言います:Luaの組み込み機能は1ベースのインデックス付けを想定しているということです。
とにかく、あるカップルの 1ベースのインデックスを使用する便利な。つまり、#
(長さ)演算子:t[#t]
テーブルの最後の(数値)インデックスにt[#t+1]
アクセスし、最後のインデックスの1つ前にアクセスします。0ベースのインデックス付けをまだ行っていない人にとっては#t+1
、リストの最後を越えて移動する方が直感的です。Luaのfor i = 1,#t
構成もあり、「1から長さ」は「0から長さ-1」にインデックスを付けるよりも賢明であるという前のポイントと同じカテゴリに分類されます。
ただし、0ベースのインデックス付けの考え方を壊すことができない場合は、Luaの1ベースのインデックス付けは確かに妨げになります。結局、著者たちは彼らのために働く何かを望んだ。そして、私は彼らの元の目標が何であったかわからないことを認めますが、それはおそらくそれ以来変更されています。