詳解Lua中的數組概念知識

來源:互聯網
上載者:User

   這篇文章主要介紹了Lua中的數組概念知識,是Lua入門學習中的基礎,需要的朋友可以參考下

  數組是有序的對象的裝置,它可以是包含含有多個行和列的行或多維陣列的集合的單個二維數組。

  在Lua中,數組是使用索引表與整數實現的。數組的大小是不固定的,它可以增長基於我們需要受儲存空間限制。

  一維數組

  一維數組可以用一個簡單的表結構來表示,可以初始化,使用一個簡單的for迴圈讀取。如下例子所示。

   代碼如下:

  array = {"Lua", "Tutorial"}

  for i= 0, 2 do

  print(array[i])

  end

  當我們運行上面的代碼之後,將得到下面的輸出。

   代碼如下:

  nil

  Lua

  Tutorial

  正如在上面的代碼中看到,當我們試圖訪問索引中是不存在的數組中的元素,則返回nil。在Lua索引通常開始於索引1,但有可能在索引0和小於0,以及建立對象。顯示使用負索引數組下面我們初始化使用for迴圈數組。

   代碼如下:

  array = {}

  for i= -2, 2 do

  array[i] = i *2

  end

  for i = -2,2 do

  print(array[i])

  end

  當我們運行上面的代碼之後,將得到下面的輸出。

   代碼如下:

  -4

  -2

  0

  2

  4

  多維陣列

  多維陣列可以用兩種方式來實現。

  數組的數組

  一維數組通過控制索引

  對於3,3多維陣列如下所示使用數組的數組的例子。

  代碼如下:

  -- Initializing the array

  array = {}

  for i=1,3 do

  array[i] = {}

  for j=1,3 do

  array[i][j] = i*j

  end

  end

  -- Accessing the array

  for i=1,3 do

  for j=1,3 do

  print(array[i][j])

  end

  end

  當我們運行上面的代碼之後,將得到下面的輸出。

   代碼如下:

  1

  2

  3

  2

  4

  6

  3

  6

  9

  對於3,3多維陣列的例子如下所示使用操作索引。

   代碼如下:

  -- Initializing the array

  array = {}

  maxRows = 3

  maxColumns = 3

  for row=1,maxRows do

  for col=1,maxColumns do

  array[row*maxColumns +col] = row*col

  end

  end

  -- Accessing the array

  for row=1,maxRows do

  for col=1,maxColumns do

  print(array[row*maxColumns +col])

  end

  end

  當我們運行上面的代碼之後,將得到下面的輸出。

   代碼如下:

  1

  2

  3

  2

  4

  6

  3

  6

  9

  正如在上面的例子中看到的,資料是基於索引儲存的。也能夠將元素以稀疏的方式,它是一個矩陣的工作方式lua的實現。因為它不儲存在Lua零值,就可以節省大量的記憶體,在Lua中任何特殊的技術相比其他程式設計語言中使用特殊技術。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。