Skip to content

インデックスを1から始める言語はまだ使われています #117

@over-the-stardust

Description

@over-the-stardust

「イテレーターと添字の範囲」のところで「実はC++に限らず、現在使われているすべてのプログラミングはインデックスを0から始めている。かつてはインデックスを1から始める言語も存在したが、そのような言語はいまは使われていない。」とあります。

しかし、Lua 言語はインデックスが1から始まります。まだそれなりに使われています。

正確には、Luaではデータを構造化する仕組みとしてテーブル(table)だけがあり、テーブルは基本的には連想配列です。
しかし、キーとして 1と連続する整数値を指定した時は、配列のインデックスとして特別扱いされます。
たとえば、

  • 空のテーブルに、位置を指定せず追加すると、追加された値のインデックスが 1で追加される。
  • 配列を特別扱いする列挙がある。
    • テーブル内を全て列挙する。
        for キー変数, 値変数 in pairs(テーブル) do 処理内容 end
    • テーブル内の配列扱いする部分を列挙する。
        for インデックス変数, 値変数 in ipairs(テーブル) do 処理内容 end

https://wandbox.org/permlink/BU6dtlbYTTaQlwe9

ですので、存在しないは言い過ぎかと思います。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions