Lua基礎+Lua數據類型

Lua基礎

Lua介紹

特點:輕量、小巧。C語言開發。開源。

設計的目的:嵌入到應用程序當中,提供靈活的擴展和定制化的功能。?lua+nginx,lua+redis。

環境安裝

windows上安裝lua

檢查機器上是否有lua

C:\Users\cpf>lua

'lua' 不是內部或外部命令,也不是可運行的程序?或批處理文件。

C:\Users\cpf>

打開官網:lua.org

點擊下載:

得到文件:LuaForWindows_v5.1.5-52.exe?雙擊,一直下一步。

驗證安裝結果:

C:\Users\cpf>lua

Lua?5.1.5 ?Copyright?(C)?1994-2012?Lua.org,?PUC-Rio?>?print("hello world")

hello?world >

C:\Users\cpf>

linux安裝lua

官網:The Programming Language Lua

步驟:

?
[root@localhost /]#?mkdir?lua?[root@localhost?/]# cd?lua/[root@localhost?lua]# curl?-R?-O?http://www.lua.org/ftp/lua-5.4.4.tar.gz% Total????%?Received?% Xferd??Average?Speed???Time????Time??????Time??CurrentDload ?Upload ??Total???Spent????Left??Speed100 ?352k ?100??352k????0?????0??16242??????0??0:00:22??0:00:22?--:--:--??9753?[root@localhost?lua]#?lltotal?356-rw-r--r--.?1?root?root?360876 Jan?13?11:15?lua-5.4.4.tar.gz?[root@localhost?lua]# tar?zxf?lua-5.4.4.tar.gz[root@localhost?lua]#?ll?total?356drwxr-xr-x. 4?1026?1000 ????58 Jan?13?11:15?lua-5.4.4-rw-r--r--.?1?root?root?360876 Jan?13?11:15?lua-5.4.4.tar.gz[root@localhost?lua]# cd?lua-5.4.4 [root@localhost?lua-5.4.4]#?lltotal?12drwxr-xr-x. 2?1026?1000 ?189?Jan?13?06:33?doc-rw-r--r--.?1?1026?1000?3146?Nov??4?12:25?Makefile-rw-r--r--.?1?1026?1000 ?151 Jan?13?11:15?README?drwxr-xr-x. 2?1026?1000 4096 Jan?13 06:29?src[root@localhost?lua-5.4.4]#?make?all?test[root@localhost?lua-5.4.4]#?make?install檢查lua腳本:[root@localhost?lua-5.4.4]#?lua?-vLua?5.1.4 ?Copyright?(C)?1994-2008?Lua.org,?PUC-Rio?[root@localhost?lua-5.4.4]# cd?/usr/local/bin/[root@localhost?bin]# ./lua?-vLua?5.4.4 ?Copyright?(C)?1994-2022?Lua.org,?PUC-Rio?[root@localhost?bin]#?

編程方式

交互式:

linux:

[root@localhost?lua-script]#?lua

Lua?5.1.4 ?Copyright?(C)?1994-2008?Lua.org,?PUC-Rio?>?print("hello")

hello

>?^C

windows:

D:\lua>lua

Lua?5.1.5 ?Copyright?(C)?1994-2012?Lua.org,?PUC-Rio?>?print("hello")

hello

>

腳本式:

linux:[root@localhost?lua-script]#?pwd /lua/lua-script[root@localhost?lua-script]# vi?hello.lua[root@localhost?lua-script]#?lua?hello.lua?script?lua[root@localhost?lua-script]#windowsD:\lua>lua?hello.lua?script?lua winD:\lua>

lua編程

基本語法

注釋:

print("script?lua win") -- 單行注釋

--[[

多行注釋?]]--

標識符:

類似于:java當中 變量、屬性名、方法名。

以字母(a-z,A-Z)、下劃線 開頭,后面加上0個或多個 字母、下劃線、數字。?不要用下劃線+大寫字母。

保留字。

總結一點:按照正常思維命名即可。

全局變量:

print(a)?--?nil?a=1

print(a)

a=nil?--銷毀a?print(a)

數據類型

nil

沒有任何有效值,就是一個?nil。

刪除的作用。全局變量和table。

print("--------刪除---------")?-- 定義一個table

myTab?= {key1?=?"value1",?key2?=?"value2"}?for?k,v?in?pairs(myTab) do

print(k.."-"..v)?end

print("--------刪除key1后---------")?myTab.key1?=?nil

for?k,v?in?pairs(myTab) do

print(k.."-"..v)

end

如何判斷變量是否為nil

boolean

false(false\nil), true(其他都為true,包括0)

print("--------boolean---------")

print(type(true))

print(type(false))

print(type(nil))

if false?or?nil then

print("nil?被當成為 true")?else

print("nil?為false")?end

print("--------測試0---------")

if?0 then

print("0是true")?else

print("0是false")?end

number

雙精度(8個字節)。

print("---------測試number-------------")?a?=?10

print(type(a))

String

字符串用單引號或雙引號來表示。

print("雙引號字符串")

print("單引號字符串")

?[[可以換行的字符串 ]]

i?=?[[

我是中國人,

我愛我的祖國!?]]

print(i)

字符串和數字進行數學運算,優先將 字符串 轉 成 數字。

print("1"?+?2)

print("1"?+?"2")

print("1+2")

字符串連接

--?print("error"+1)

print("error"..1)

計算字符串長度

testLenth?=?"abcde"

print("testLenth的長度為:"..#testLenth)

table

類比成java當中:數組,map,鏈表,隊列等。

table的key的索引,從1開始。

print("---------測試 table-------------")?tab1?=?{}

tab2?= {"a","b","c"}

tab3?= {key1="value1",?key2?=?"value2"}?print("tab3-:")

for?k,v?in?pairs(tab3) do?print(k.."="..v)

end

print("tab3:")

tab1["a_key"]="a_value"?for?k,v?in?pairs(tab1) do

print(k.."="..v)?end

for?k,v?in?pairs(tab2) do?print(k.."="..v)

end

print("tab3-:")

tab3["key2"]?=?nil

for?k,v?in?pairs(tab3) do

print(k.."="..v)?end

print("tab3:")

function

階乘:

function?factorial(n)?if?n?==?0 then

return?1

else

return?n * factorial(n?-?1)?end

end

testFac?= factorial

print("6的階乘結果:"..testFac(6))

匿名函數

print("------------匿名function-------------")?function?testPrint(tab, func)

for?k,v?in?pairs(tab) do

print(func(k,v))?end

end

tab1?= {"a","b","c"}

testPrint(tab1,

function(k,v)

return?k.."="..v?end

)

thread:類似于線程,獨立的棧,局部變量。

userdata:存儲c 、 c++數據類型。

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

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

相關文章

基于VuePress2開發文檔自部署及嵌入VUE項目

最近在搞前端開發幫助文檔,轉了一圈發現Vue提供了一個高性能的、Vue驅動的靜態網站生成框架-VuePress。VuePress 是一個以 Markdown 為中心的靜態網站生成器。你可以使用 Markdown 來書寫內容(如文檔、博客等),然后 VuePress 會生…

Flask初步學習

文章目錄一、初識Flask1.1 Pycharm修改環境配置1.2 運行第一個flask項目1.3 獲取數據請求1.3.1 動態路由參數一、初識Flask 1.1 Pycharm修改環境配置 file——settings——project——python Interpreter——add interpreter——add local interpreter 1.2 運行第一個fla…

word的正則替換

word查看選中了幾行 word替換掉空行 替換空行 按下 “Ctrl H” 組合鍵打開 “查找和替換” 對話框,在 “查找內容” 框中輸入 “pp”,“^p” 代表段落標記,兩個 “^p” 表示連續的兩個段落標記,即空行。在 “替換為” 框中輸入 “…

Spring Framework源碼解析——DisposableBean

版權聲明 本文原創作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl一、概述 DisposableBean 是 Spring 框架中用于定義 Bean 銷毀時回調行為的核心接口之一。它提供了一個標準化的鉤子方法 destroy(),允許 Bean 在容器關閉或作用域…

linux安裝和使用git

Linux 上安裝 Git 在 Linux 上安裝 Git,你可以按照以下步驟進行: 打開終端:打開你的 Linux 終端應用程序。通常可以通過在應用程序菜單中搜索 "Terminal" 或 "終端" 來找到它。 更新軟件包列表:運行以下命令…

數字圖像處理4

預處理——ROI——形態學處理形態學處理形態學變化只能在二值圖上處理1.腐蝕Erode對kernel映射的區域做與操作,包括自己在內如果有0則中間賦值成02.膨脹Dilate對kernel映射的區域做或操作,包括自己在內如果有1則中間賦值成13.其他操作開操作:…

Solon v3.4.3 發布(國產 Java 應用開發生態基座)

Solon 框架! Solon 是新一代,Java 企業級應用開發框架。從零開始構建(No Java-EE),有靈活的接口規范與開放生態。采用商用友好的 Apache 2.0 開源協議,是“杭州無耳科技有限公司”開源的根級項目&#xff…

Spring-Security-5.7.11升級6.5.2

1.Session Management 1.1.必須明確調用SecurityContextRepository保存SecurityContext 在Spring Security 5中,默認行為是SecurityContext使用SecurityContextPersistenceFilter自動保存到SecurityContextRepository。 //版本5.7.11 //SecurityContextPersisten…

docker下載安裝和使用(Hyper-V方式)

1.環境準備 左鍵單擊電腦左下角開始按鈕—>點擊“設置”—>搜索“Windows功能”—>啟用或關閉Windows功能—>勾選Hyper-v,啟用后電腦會重啟,安裝環境配置成功。 選擇 Hyper-v2.下載docker docker官網下載地址:https://www.docker…

【消息隊列】RabbitMQ “消息隊列模式” 以及NET8集成

在 .NET 8 中集成 RabbitMQ 消息隊列,可以使用官方推薦的 RabbitMQ.Client 庫或封裝好的 MassTransit/EasyNetQ 等高級庫。以下是 RabbitMQ 的基本集成代碼 和 常見消息模式 的實現。 RabbitMQ 本身并沒有直接支持延時消息的功能,但是可以通過一些機制來…

Docker 鏡像常見標簽(如 `標準`、`slim`、`alpine` 和 `noble`)詳細對比

以下是 Docker 鏡像常見標簽(如 標準、slim、alpine 和 noble)的詳細對比,涵蓋基礎系統、體積、適用場景及注意事項:1. 標準鏡像(無后綴) 基礎系統:完整 Linux 發行版(如 Debian、Ub…

(1-9-2)Java 工廠模式

目錄 1.設計模式與分類 2. 工廠模式 2.1 工廠模式概述 2.2 簡單工廠 2.3 學生推薦就業Demo 00.項目目錄 01. 創建抽象接口Job 02. 創建實體類 03. 創建推薦工作工廠類 04. 創建學生推薦就業客戶類 3. i18n國際化語言標題自適應 00. 實現效果 01. 創建抽象接口 02…

QT遠程開發技巧

交叉編譯時野火提供的文件 交叉編譯器 GNU官網可以下載, QT庫文件這里給的QT-everyWhere版本,是開源版本需要自行編譯。(遠程服務器通常是PC架構【AMD64】,直接apt-get install下載的qt也是Pc架構的,不能直接在板卡【ARM64】上運行,必須對源碼交叉編譯) 注意QT遵從GPL開源…

Linux操作系統從入門到實戰(十九)進程狀態

Linux操作系統從入門到實戰(十九)進程狀態前言一、什么是進程狀態二、狀態本質三、最核心的3種狀態1. 就緒狀態2. 運行狀態3. 阻塞狀態四、狀態變化的核心1/兩種資源如何影響狀態?五、操作系統怎么管理這些狀態?六、Linux里結構體…

容器技術之docker

容器技術之Docker一、什么是Docker二、為什么會出現Docker2.1 環境一致性問題2.2 虛擬化技術的局限性2.3 微服務架構的興起三、重要概念3.1 什么是鏡像3.2 什么是容器3.3 總結:3.4 Docker倉庫四、安裝Docker(Ubuntu系統下)1.卸載老的版本2.更…

數據結構與算法:樹狀數組

前言 太難了…… 一、樹狀數組使用場景 樹狀數組一般用來維護可差分的信息,比如累加和,累乘積等。舉個例子,當整個數組的累加和為sum1,一個區間內的累加和為sum2,那么除了這個區間剩下部分的累加和就是sum1-sum2&am…

“一車一碼一池一充”:GB 17761-2024新國標下電動自行車的安全革命

2025年9月1日,電動自行車行業將迎來一場深刻變革。隨著強制性國家標準GB 17761-2024《電動自行車安全技術規范》的全面實施,我國超3.5億電動自行車用戶的安全出行將獲得全新的技術保障。在這場安全升級中,“一車一碼一池一充”的全鏈條管控機…

QT聊天項目DAY18

1.文件傳輸1.1 客戶端采用分塊傳輸(20MB/塊),以及MD5碼校驗并將讀出的二進制數據采用Base64編碼進行傳輸1.1.0 通信協議1.1.1 UI采用垂直布局,該布局大小為570 * 160,間隔全是0,UI方面不詳細介紹了1.1.2 MainWindow頭文件#ifndef …

centos系統sglang單節點本地部署大模型

前置工作 本地部署大模型的基本概念和前置工作-CSDN博客 模型部署 這里通過docker容器進行部署。我這里是h20*8,部署deepseek-v3-0324,這個配置和模型都比較大,大家根據自己的硬件對應調整 步驟一 我們要通過sglang部署模型,先拉取sglang的docker鏡像,這里下載失敗的…

【dij算法/最短路/分層圖】P4568 [JLOI2011] 飛行路線

題目描述 Alice 和 Bob 現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在 nnn 個城市設有業務,設這些城市分別標記為 000 到 n?1n-1n?1,一共有 mmm 種航線,每種航線連接兩個城市,并且航線有一定…