為什麼 Lua 陣列(表)從 1 開始而不是從 0 開始?
是的,Lua 中的陣列以索引 1 作為第一個索引開始,而不是像大多數程式語言那樣以索引 0 開始。
示例
請考慮以下示例:
arr = {10,11,12,13,14}
print(arr[0])
print(arr[1])在上面的示例中,我們正在列印索引 0 和 1 處的值,預設情況下,索引 0 處的值為 nil,因為在 Lua 中,陣列從 1 開始索引,而不是 0。
輸出
nil 10
所以,現在我們知道陣列是基於 1 索引的,而不是基於 0 索引的。但是,等等,為什麼是 1 索引和 0 索引?
實際上,關於哪種方法更好以及為什麼更好,在選擇基於 0 索引的陣列或基於 1 索引的陣列時,已經進行了多次辯論,但沒有明確的答案。
Lua 中的陣列基於 1 索引的主要原因是,語言 **Lua** 本身受到名為 **Sol** 的語言的啟發,該語言是為沒有接受過任何程式語言或任何計算機科學領域正式培訓的石油工程師設計的。因此,那些沒有任何程式語言的先前知識或如何儲存資料的現實知識的人,通常難以理解從 0 開始索引背後的邏輯,因此 Lua 開發人員認為從 1 開始索引可能是一個更好的主意,這將使這種情況變得無關緊要,並且對於程式設計新手來說更容易上手 Lua,而不會遇到任何重大問題。
此外,Lua 提供了許多非常合適的方法,可以幫助任何使用 Lua 的開發人員避免 0 索引和 1 索引之間的混淆,因為這些方法甚至不需要索引。其中一些方法是 **通用 for** 迴圈或 **ipairs 運算子**。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP