Dalam Pemrograman dalam diskusi pertama Lua tentang tabel, mereka menyebutkan:
Karena Anda dapat mengindeks tabel dengan nilai apa pun, Anda dapat memulai indeks array dengan nomor apa pun yang Anda sukai. Akan tetapi, adalah kebiasaan di Lua untuk memulai array dengan 1 (dan bukan dengan 0, seperti pada C) dan beberapa fasilitas tetap menggunakan konvensi ini.
Kemudian, dalam bab tentang struktur data, mereka mengatakan hal yang hampir sama lagi: bahwa fasilitas bawaan Lua mengasumsikan pengindeksan berbasis-1.
Bagaimanapun, ada beberapa kemudahan untuk menggunakan pengindeksan berbasis 1. Yaitu, #
operator (panjang): t[#t]
mengakses indeks (numerik) terakhir dari tabel, dan t[#t+1]
mengakses 1 setelah indeks terakhir. Untuk seseorang yang belum pernah terkena pengindeksan berbasis 0, #t+1
akan lebih intuitif untuk melewati akhir daftar. Ada juga for i = 1,#t
konstruksi Lua , yang saya percaya berada di bawah kategori yang sama dengan poin sebelumnya bahwa "1 untuk panjang" bisa lebih masuk akal daripada mengindeks "0 dengan panjang dikurangi 1".
Tetapi, jika Anda tidak dapat mematahkan pola pikir pengindeksan berbasis 0, maka pengindeksan berbasis-1 Lua tentunya bisa menjadi lebih penghalang. Pada akhirnya, penulis menginginkan sesuatu yang berhasil untuk mereka ; dan saya akui saya tidak tahu apa tujuan awal mereka , tetapi mungkin berubah sejak saat itu.