Lua(數組)

Lua 數組基礎概念

Lua 中的數組實際上是用整數索引的 table,是一種特殊形式的表。數組索引通常從 1 開始(Lua 慣例),但也可以從其他值開始。

創建數組

通過表構造器初始化數組:

-- 索引從 1 開始的數組  
local arr = {10, 20, 30, "hello"}  -- 顯式指定索引(可自定義起始索引)  
local arr2 = {[1] = "a", [2] = "b", [3] = "c"}  

訪問和修改元素

通過索引直接操作:

print(arr[1])  -- 輸出 10  
arr[2] = 200   -- 修改第二個元素  
arr[5] = 50    -- 新增第五個元素  

遍歷數組

使用 ipairsfor 循環:

-- ipairs 遍歷(從 1 到連續整數索引結束)  
for i, v in ipairs(arr) do  print(i, v)  
end  -- 數值 for 循環  
for i = 1, #arr do  print(arr[i])  
end  

獲取數組長度

# 操作符返回連續整數索引部分的最大索引值

print(#arr)  -- 若 arr = {10, 20, nil, 40}, 輸出 2(因第三位為 nil)  

多維數組

通過嵌套 table 實現:

local matrix = {  {1, 2, 3},  {4, 5, 6}  
}  
print(matrix[1][2])  -- 輸出 2  

example:

-- 初始化數組
array = {}
for i=1,3 doarray[i] = {}for j=1,3 doarray[i][j] = i*jend
end-- 訪問數組
for i=1,3 dofor j=1,3 doprint(array[i][j])end
end

注意事項

  • 索引從 1 開始:Lua 慣例,但技術上可從任意值開始。
  • 非連續索引:若數組含 nil 空隙,#ipairs 可能不會遍歷全部元素。
  • 動態擴展:數組大小無需預先聲明,插入新元素會自動擴展。

實用操作示例

插入元素

table.insert(arr, 3, "new")  -- 在位置 3 插入 "new"  

刪除元素

table.remove(arr, 2)  -- 移除第二個元素  

排序

table.sort(arr)  -- 默認升序  
table.sort(arr, function(a, b) return a > b end)  -- 降序  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Docker項目實戰】在Docker環境下部署go-file文件分享工具

【Docker項目實戰】在Docker環境下部署go-file文件分享工具一、go-file介紹1.1 go-file簡介1.2 go-file特點1.3 go-file使用場景二、本地環境介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3 檢查docker compose 版本四、下…

C++基礎學習——文件操作詳解

一、文件流類概述 C 標準庫提供了三個主要的文件流類: ifstream (輸入文件流):用于從文件讀取數據ofstream (輸出文件流):用于向文件寫入數據fstream (文件流):既可讀又可寫 這些類都繼承自 iostream 類,因此可以使用 …

Android補全計劃 DrawerLayout使用

DrawerLayout其實用了很久了,甚至封裝了一些代碼方便不同項目使用,但重構代碼的時候突然意識到這塊內容很不成體系,因此又參考了些文檔,組建了自己的一個文檔。 toolbardrawerlayout能寫的效果很多,在此我也只是截取了…

人工智能之數學基礎:概率論之韋恩圖的應用

韋恩圖的應用由于事件的計算有時候太過于抽象了,此時我們可以使用韋恩圖的方式來進行驗證,我們下面來舉一個例子,A∪B)-CA∪(B-C)是否成立?我們可以通過韋恩圖來完成這個任務:我們通過這種方式來一點一點的…

小白成長之路-部署Zabbix7(二)

文章目錄一、zabbix-自動發現二、自動注冊三、zabbix-網易云郵箱-發送消息二、zabbix-釘釘告警總結一、zabbix-自動發現 1.在準備兩臺虛擬機,我的是192.168.144.12,192.168.144.13 server換成zabbix服務器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.創建自動…

CMU15445-2024fall-project4踩坑經歷

project4目錄Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并發控制Index ScanDelete、Update并發控制主鍵更新Bonus 1Bonus 2處理寫傾斜感謝CMU的教授們給我們分享了如此精…

C++20 協程

摘要:C20 引入的協程機制為異步編程提供了輕量級解決方案,其核心優勢在于通過用戶態調度實現高效的上下文切換,適用于 I/O 密集型任務、生成器模式等場景。本文系統闡述 C20 協程的底層原理與實踐要點,首先解析協程的基本結構&…

《計算機組成原理與匯編語言程序設計》實驗報告二 基本數字邏輯及漢字顯示

目 錄 一、實驗學時 二、實驗目的 三、實驗要求 四、實驗內容 五、實驗步驟 1、打開Logisim軟件,列出并行四位二進制全加器邏輯電路真值表,并使用與、或、非、異或等基本原件實現并行四位二進制全加器邏輯電路,鋪設完成后進行測試進而…

問卷調查小程序的設計與實現

問卷調查小程序的設計與實現:技術與功能全解析在數字化時代,問卷調查成為數據收集的重要工具。一款高效、易用的問卷調查小程序能夠顯著提升用戶體驗和數據質量。本文將深入探討基于現代技術棧的問卷調查小程序的設計與實現,涵蓋核心功能、技…

STM32項目實戰:正弦波

波形發生器對我的錢包不怎么友好,手里面有stm32f103c8t6,于是就想,放在哪兒吃灰也是吃灰,不如做個正弦波發生器。方案 dac沒怎么用過,所以打算使用輸出模擬正弦波。我們決定采用以下方案:1.使用TIM2_CH3(PA…

Unity 時間抗鋸齒(Temporal Antialiasing, TAA)技術解析

時間抗鋸齒(Temporal Antialiasing, TAA)技術解析 一、什么是時間抗鋸齒(TAA)? 時間抗鋸齒(TAA)是一種先進的實時抗鋸齒技術,通過在時間維度上積累多幀渲染數據,實現比傳…

uniapp打開導航軟件并定位到目標位置的實現

/*** 打開導航* param location 經緯度(例如:"117.214713,39.116884")* param address 地址*/ export function mapNavigation(location, address) {const locationArr location.split(,)const longitude locationArr[0]const latitude locationArr[1]…

Mysql實現高可用(主從、集群)

一、背景 需求:客戶要實現Mysql8.0高可用,出現故障時,需要實現自動切換。 分析:實現切換有兩種方式,一種數據庫自動切換,一種代碼實現。 本著麻煩別人,別麻煩自己的原則,得給客戶的D…

AI編程革命:自動化代碼生成、低代碼開發與智能優化實踐全景解析

AI編程革命:自動化代碼生成、低代碼開發與智能優化實踐全景解析 人工智能正在重塑軟件開發的基本范式,從自動化代碼生成到低代碼開發平臺,再到算法智能優化,AI編程技術正以指數級速度改變開發者工作方式。 一、自動化代碼生成技術…

[實戰] 用1 PPS 馴服本地恒溫晶振(OCXO/TCXO)

1 PPS 馴服本地恒溫晶振(OCXO/TCXO) “讓任何工程師都能在一周內做出自己的 GPSDO” 文章目錄1 PPS 馴服本地恒溫晶振(OCXO/TCXO)前言1 系統總體框圖2 硬件清單與連接3 時間間隔測量(TDC)原理4 數字鎖相環算…

基于RK3576+FPGA的無人機飛控系統解決方案

基于RK3576FPGA的無人機飛控系統解決方案設計如下&#xff1a;一、硬件架構設計?異構計算核心模塊?主控采用RK3576處理器&#xff0c;四核Cortex-A72&#xff08;2.3GHz&#xff09;運行路徑規劃算法&#xff08;A*、RRT*&#xff09;&#xff0c;支持動態避障響應時間<50…

2025暑期—05神經網絡-卷積神經網絡

1. 卷積神經網絡實際上就是避免過擬合&#xff0c;就是“特征”神經網絡。這個特征和卷積核相關。卷積和相關類似&#xff0c;有點是本質屬性和輸出屬性的感覺。著重注意三通道卷積padding 上下左右、前后都要加邊池化就是解決特征過多問題&#xff0c;縮小1倍較多。均值池化&a…

Elasticsearch部署全攻略:編譯安裝與 Yum 安裝實踐,日志切割及報錯處理

前言&#xff1a;在 Linux 運維工作中&#xff0c;Elasticsearch 的部署與運維是高頻需求——無論是快速搭建測試環境還是構建生產級集群&#xff0c;選擇合適的安裝方式&#xff08;編譯安裝或 Yum 安裝&#xff09;直接影響后續維護效率。同時&#xff0c;日志的合理切割能避…

TypeScript 配置參數詳解 (tsconfig.json)

文章目錄前言核心配置基本選項嚴格類型檢查選項模塊解析選項Source Map 選項實驗性選項其他選項文件包含/排除選項詳細用法示例最佳實踐建議前言 tsconfig.json 是 TypeScript 項目的配置文件&#xff0c;用于指定編譯選項和文件包含規則。以下是所有主要配置參數的中文詳解&a…

Java經典筆試題

1.計算機網絡傳輸層有哪些協議&#xff1f;分別適用于什么場景&#xff1f; TCP&#xff1a;面向連接、可靠傳輸&#xff08;重傳機制&#xff09;&#xff0c;適用于對數據完整性要求高的場景&#xff0c;如文件傳輸 &#xff08;FTP&#xff09;、HTTP 通信、郵件發送&…