2010-12-12 1 views
2

Lua(1から始まる、たとえばテーブルインデックスが1から始まる)から呼び出されるAPIを作成する場合、同じルールをAPIに適用しますか?Luaから呼び出されたAPIを記述する - 0または1をベースにしていますか?

たとえば、APIにGetFoo(x、y)という関数があり、座標(x、y)にFooを返したとします。これらのものが(0,0)で始まるシステム自体(例えばCまたはC++で書かれた0ベース)では、APIの(0,0)または(1,1)の座標軸を開始しますか? (Luaのコンベンションを使用した場合、これらの種類の操作のために数値を取り出すときには、luaスタックから常に1を引く必要があります)。

答えて

5

私はLuaを使用していませんが、私は座標系では特に(0,0)が望ましいと言います。他のすべてのために

、限り、あなたは文書で明確に述べるように、すべての手段によって、あなたはまた、自分のテーブル/配列に0のインデックスを使用することができます。1.

+1

私は同意します。座標系の特定のケースでは、座標を(1,1)で開始するのは意味がありません。具体的には、システムを最終的に浮動小数点や負の座標に拡張しようとする場合です。 – Zecc

0

でインデックスを開始します。唯一の不都合は、標準ライブラリが1ベースの規則を使用することです。したがって、table.sort、文字列操作などのようなものはtable [0]要素を無視します。

+0

と '#array' too :-( – u0b34a0f6ae

関連する問題