chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Lua基礎(chǔ)語法更新篇(上)

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2026-01-23 19:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

初識 Lua

Lua 是一種輕量小巧的腳本語言,它用標(biāo)準(zhǔn)C語言編寫并以源代碼形式開放。這意味著什么呢?這意味著Lua虛擬機(jī)可以很方便的嵌入別的程序里,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。而整個Lua虛擬機(jī)編譯后僅僅一百余K,經(jīng)過適當(dāng)?shù)牟眉暨€能做到更小,十分適合嵌入式的開發(fā)。

同時,在目前腳本引擎中,Lua的運行速度占有絕對優(yōu)勢。這些都決定了Lua是作為嵌入式腳本的最佳選擇。

在我們編寫代碼之前,需要做一下準(zhǔn)備,就是:確保你輸入標(biāo)點符號時,用的不是中文輸入法。


一、第一個 Lua 程序

幾乎所有語言的第一行代碼,都是輸出hello world,本教程也不意外。

在Lua中,打印結(jié)果只需要使用print這個函數(shù)即可。同時,如果需要使用函數(shù),只需要在函數(shù)名后加上雙括號,同時傳入你想傳入的值即可。

所以,我們來執(zhí)行下面的代碼,打印出hello world吧!

wKgZPGlzP4mAcd37AAAnMnHNYbQ181.png

二、輸出數(shù)據(jù)

上一部分,我們知道了,在Lua中,可以使用print函數(shù)來打印你想要得到的結(jié)果。

并且還知道了,函數(shù)是指可以實現(xiàn)某些功能的子程序,可以使用函數(shù)名(參數(shù))來執(zhí)行。

讓我們試著輸出一些其他東西吧!使用多個print函數(shù),輸出自己想輸出的數(shù)據(jù)。

wKgZPGlzVByAXAlWAABuog3rEbU546.png

三、代碼注釋

代碼注釋就是在代碼里,不會運行的部分。注釋完全不會被運行。

這部分是為了在查看代碼時,可以更好地立即現(xiàn)有代碼含義用的。

我們可以用--開頭,來寫一段單行注釋

也可以用--[[開頭,]]結(jié)尾,寫一段多行注釋。

下面是注釋的例子:

wKgZPGlzVNOARiJtAAC2JSZ3eW0171.png

四、變量

4.1 number變量

變量,可以看作是一個桶,在里面裝你想要裝的內(nèi)容。這些內(nèi)容可以是Lua包含的所有合法類型。

例如:我想要新建一個桶,名叫bucket,在里面放入233這個數(shù)字,就可以像下面一樣:

wKgZPGlzVV-AMFH3AAAgtmgTBdM433.png


讓我們試著自己新建幾個變量吧!

新建變量year,并將變量的值設(shè)置為1926

新建變量month,并將變量的值設(shè)置為8

新建變量day,并將變量的值設(shè)置為7

wKgZPGlzVfWAL2UuAACAnP1u3H4082.png

4.2 了解nil

nil類型表示沒有任何有效值,只要是沒有聲明的值,它就是nil

比如我打印一個沒有聲明的值,便會輸出nil:

wKgZO2lzVlmAPcw8AABEhM1iCDQ216.png

這里需要你思考一下,運行以下代碼,將會輸出什么結(jié)果?

wKgZO2lzVoWAe1PQAABHTwLaCbE727.png

4.3 賦值語句

賦值是改變一個變量值的最基本的方法。

如下面一樣,使用等號對左邊的變量進(jìn)行賦值

wKgZO2lzVrOAfzyQAAA6E7ruPas109.png

Lua可以對多個變量同時賦值,變量用逗號分開,賦值語句右邊的值會依次賦給左邊的變量。

wKgZO2lzVuKABI5zAAAlulEdago934.png

當(dāng)左右值的數(shù)量不一致時,Lua會進(jìn)行下面的設(shè)定:

  • 變量個數(shù) > 值的個數(shù):按變量個數(shù)補(bǔ)足nil
  • 變量個數(shù) < 值的個數(shù):多余的值會被忽略

下面的例子可以展示這種設(shè)定:

wKgZPGlzVxiAPnqHAADARvggYq0866.png

這里需要你思考一下,運行以下代碼,將會輸出什么結(jié)果?

wKgZO2lzVzyANcj9AABWPDQqH58219.png

4.4 交換變量

這部分需要你自己完成一個任務(wù):

已知下面的代碼,并且已知a和b的值,請在交換他們的值,使打印輸出12 34

wKgZO2lzV2uAOp9GAACY3y-OOiw402.png

4.5 輸出變量

我們已經(jīng)知道了,在Lua中,可以使用print函數(shù)來打印你想要得到的結(jié)果。

同時在上一節(jié),我們學(xué)會了新建變量和設(shè)置變量的值。

讓我們試著輸出某個變量吧!使用print函數(shù),輸出已知變量。 我們已知變量num為某個數(shù)字,試著輸出它的值吧!

wKgZPGlzV5qAb3xYAABdKmnDvdo215.png

4.6 算數(shù)運算符

運算符是一個特殊的符號,用于告訴解釋器執(zhí)行特定的數(shù)學(xué)或邏輯運算。

上一節(jié)中,新建的數(shù)字變量,我們稱之為number類型的變量。

本節(jié)我們來學(xué)習(xí)使用算術(shù)運算符,如下所示:

wKgZPGlzV_OAZo9IAACRxrAir1A228.png

我們可以通過以下實例來理解算術(shù)運算符的應(yīng)用:

wKgZPGlzWBeAKoOFAAFTGBT-j7s173.png

你需要完成下面的任務(wù):

已知,一個長方體的長寬高分別為a、b、c(單位米),且這個物體重量為m(單位克)

請打印出物體的密度(單位g/m3)

注:密度計算公式 密度 = 質(zhì)量 / 體積

wKgZO2lzWD2AbRM7AABZqMyVAUc672.png

六、字符串

6.1 string類型變量

字符串(即string),就是一串文本數(shù)據(jù),可以存儲你要的文本。

在第二節(jié)中,print出的數(shù)據(jù)就是一個字符串。

Lua 語言中字符串可以使用以下三種方式來表示:

1. 單引號間的一串字符

2. 雙引號間的一串字符

3. [[和]]間的一串字符

你可以參考下面的例子來深入理解:

wKgZO2lzWPCACEnnAAE-WpYUD1I228.png

接下來你需要完成下面的練習(xí):

新建三個變量s1、s2、s3

分別存入字符串?dāng)?shù)據(jù):str、abc、233,使輸出打印正確

wKgZPGlzWSiAMRTHAACQpC4Yk-Q662.png

6.2 轉(zhuǎn)義字符

在上一節(jié)中,我們學(xué)習(xí)了如何聲明字符串。

但是我們有時候會遇到一些特殊的問題,如:如何輸出單引號和雙引號?如何輸出回車換行?

也許我們可以用下面的方式簡單規(guī)避,輸出單引號時,聲明字符串用雙引號括起來,像下面這樣

wKgZO2lzWViAfdoRAAAZ6V07YBQ626.png

同理,輸出雙引號時,聲明字符串用單引號括起來,像下面這樣

wKgZPGlzWYCARzy8AAAZs2z_174651.png

但是,這樣會出現(xiàn)一個問題:如何同時顯示單引號和雙引號?這里就需要轉(zhuǎn)義字符登場了。

轉(zhuǎn)義字符用于表示不能直接顯示的字符,比如后退鍵、回車鍵、等。

以開頭的都是轉(zhuǎn)義字符,下面時常用的轉(zhuǎn)義字符格式:

wKgZO2lzWaqAGs9_AABdCJqUw-M656.png

例如,如果我們想給str賦值一個單引號,一個雙引號('"),那么我們可以這樣寫:

wKgZO2lzWc2AGY1yAAAchH8OM0k566.png

下面需要你來完成一個簡單的任務(wù):

新建一個變量str,給str賦值為

abcd"ef'gh]]

并打印出來

wKgZO2lzWfOAOTr3AABYFKW2AsI928.png

6.3 string拼接

字符串和字符串可以相加嗎?可以!我們可以用拼接符號來將兩個獨立的字符串拼起來。

我們使用..來表示字符串拼接符號,如下面的示例代碼:

wKgZO2lzWiGAdmFBAABhoo5Kv48353.png


下面你要完成這個任務(wù):

已知三個字符串變量s1、s2、s3

請將他們按順序拼接起來,存入all,并使用print輸出結(jié)果

wKgZO2lzWkiAc0uQAABYLSgI41g169.png

6.4 number轉(zhuǎn)string

上面一節(jié)學(xué)習(xí)了如何拼接字符串,這個方法固然很好用,但是有時候我們會遇到一個需求,那就是把number類型的變量和string類型的變量拼接起來,組成一個新的string

比如下面的變量n和s,如何拼接起來呢?

wKgZPGlzWn2ARWLiAAAk0uB75hg834.png

我們可以直接將number類型的變量n轉(zhuǎn)換成string類型的值,這樣就可以拼接了

使用tostring(value)函數(shù)即可實現(xiàn)這一操作:

wKgZPGlzWqKAfZJHAABVVmHzUzM285.png

下面你要完成這個任務(wù):

已知三個變量n1、s、n2

然后將他們按順序拼接起來,存入變量result,使輸出結(jié)果正確

小提示:在某些情況下,Lua會自動將number類型轉(zhuǎn)換成string類型

wKgZPGlzWs2AGnabAABYG2Mw_GE462.png

6.5 string轉(zhuǎn)number

上面一節(jié)學(xué)習(xí)了如何將number轉(zhuǎn)成string,這一節(jié)我們來學(xué)習(xí)如何將string轉(zhuǎn)成number

比如下面的變量s,存儲的內(nèi)容是一個字符串,但是代表了一個數(shù)字,如何轉(zhuǎn)成number再與n相加計算呢?

wKgZO2lzW_uAIXqjAAAmM_iGtWs362.png


我們可以直接將string類型的變量s轉(zhuǎn)換成number類型的值,這樣就可以計算了

使用tonumber(value)函數(shù)即可實現(xiàn)這一操作:

wKgZPGlzXByAGrUlAABVBXPUR-A522.png

下面你要完成這個任務(wù):

已知三個字符串變量s1、s2、s3,其內(nèi)容均為純數(shù)字

請計算他們的算術(shù)和,賦值給新建的變量result,使下面代碼輸出正確結(jié)果

wKgZO2lzXD-AV4o5AABajgBmGBU681.png

七、邏輯運算

7.1 布爾型和比較運算

布爾型(boolean)只有兩個可選值:true(真) 和false(假)

Lua 把 false 和 nil 看作是false,其他的都為true(包括0這個值,也是相當(dāng)于true)

Lua 中也有許多的關(guān)系運算符,用于比較大小或比較是否相等,符號及其含義如下表:

wKgZO2lzXImAGEeZAAB_IPFo6m4260.png

我們可以通過以下實例來更加透徹的理解關(guān)系運算符的應(yīng)用:

wKgZO2lzXKaAMJTwAADUKyCgbCA985.png

下面問題來了,運行以下代碼,將會輸出什么結(jié)果?請自行思考

wKgZPGlzXMWAPdruAAB2WRbXyrY826.png

7.2 邏輯運算符

邏輯運算符基于布爾型的值來進(jìn)行計算,并給出結(jié)果,下表列出了 Lua 語言中的常用邏輯運算符:

wKgZO2lzXPWAZGNnAABBhWm7J7s770.png

我們可以通過以下實例來更加透徹的理解邏輯運算符的應(yīng)用:

wKgZO2lzXReAW0UAAAE4xtUOkIw714.png

下面問題來了,運行以下代碼,將會輸出什么結(jié)果?

wKgZPGlzXTyASNFeAACMRp0Q4-8392.png

7.3 檢驗大?。ㄗ詼y題)

題目:如果已知number變量n,那么如果需要判斷n是否符合下面的條件:

3

以下四行判斷代碼,正確的是?

(返回true即表示變量n符合要求)

wKgZO2lzXW2AXyaEAACD_mS2Wpg869.png

八、分支判斷

8.1 條件判斷

上面一節(jié)學(xué)習(xí)了布爾類型,那么這個需要用到哪里呢?我們需要用它來進(jìn)行某些判斷。

在Lua中,可以使用if語句來進(jìn)行判斷,如下面所舉例的代碼,可以判斷n是否為小于10的數(shù):

wKgZO2lzXamAF5-mAABOPQkKCQI016.png

我們整理一下,實際上if語句就是如下結(jié)構(gòu):

wKgZO2lzXeyADAwcAABIt4Gspv0771.png


下面是你需要完成的事:

已知變量n,請判斷n是否為奇數(shù),如果是,請給n的值加上1

如果你覺得有難度,請查看下面的提示:

求出n除以2的余數(shù):n % 2

給n的值加上1:n = n + 1

wKgZPGlzXhWALe9vAADElZ2d3cM423.png

8.2 多條件判斷

上面一節(jié)學(xué)習(xí)了簡單的if語句寫法,這一節(jié)我們來學(xué)習(xí)多條件分支語句

在Lua中,可以使用if語句來進(jìn)行判斷,同時可以使用else語句,表示多個分支判斷

wKgZPGlzXj-AXTTMAACmWQbxywM049.png

舉個例子,比如有一個數(shù)字n:

  • 當(dāng)它大于等于0、小于5時,輸出太小,
  • 當(dāng)它大于等于5、小于10時,輸出適中,
  • 當(dāng)它大于等于10時,輸出太大,

那么代碼就像如下這樣:

wKgZO2lzXnOANMNkAADGBDMh1E4360.png

注意:else和elseif都是可選的,可有可無,但是end不能省略

下面是你需要完成的事:

已知變量n,請判斷n是否為奇數(shù),

如果是,請給n的值加上1

如果不是,請將n的值改為原來的兩倍

wKgZO2lzXpyABlu4AADMeJiGQfo303.png

8.3 判斷三角形合法性(自測題)

你需要使用前面幾章的知識,來完成下面的題目

已知三個number類型的變量a、b、c,分別代表三根木棒的長度

請判斷,使用這三根木棒,是否可以組成一個三角形(兩短邊之和大于第三邊)

如果可以組成,就打印出true

如果不可以,就打印false

wKgZPGlzXsyAaPIcAABVJ3Yh2IU601.png

8.4 if的判斷依據(jù)(自測題)

我們在前面了解到,Lua 把false和nil看作是false,其他的都為true(包括0這個值,也是相當(dāng)于true)

那么問題來了,執(zhí)行下面的代碼,將會輸出什么?

wKgZPGlzXvmAH-TMAADYHOaC_d0771.png

下篇繼續(xù)介紹哦~


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 語法
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    10646
  • Lua
    Lua
    +關(guān)注

    關(guān)注

    0

    文章

    86

    瀏覽量

    11459
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    警惕兼容性陷阱:LuatOS-Air腳本在LuatOS中的運行異常分析

    即使語法正確的LuatOS-Air腳本,在LuatOS環(huán)境中也可能出現(xiàn)“靜默失敗”——程序無報錯但功能未執(zhí)行。這類問題多與系統(tǒng)事件循環(huán)、模塊加載時機(jī)或硬件抽象層調(diào)用方式有關(guān)。本文通過多個真實
    的頭像 發(fā)表于 01-13 19:20 ?161次閱讀
    警惕兼容性陷阱:LuatOS-Air腳本在LuatOS中的運行異常分析

    BTS50007-1LUA:高性能12V智能高端功率開關(guān)的深度解析

    BTS50007-1LUA:高性能12V智能高端功率開關(guān)的深度解析 在電子設(shè)備的設(shè)計中,功率開關(guān)的性能和可靠性對整個系統(tǒng)的穩(wěn)定性起著至關(guān)重要的作用。今天,我們要深入探討的是英飛凌(Infineon
    的頭像 發(fā)表于 12-20 09:30 ?691次閱讀

    探索BTH50015 - 1LUA:高效智能高側(cè)功率開關(guān)的技術(shù)剖析

    探索BTH50015 - 1LUA:高效智能高側(cè)功率開關(guān)的技術(shù)剖析 在電子工程師的日常設(shè)計工作中,選擇合適的功率開關(guān)至關(guān)重要。今天,我們就來深入剖析一款名為BTH50015 - 1LUA的Power
    的頭像 發(fā)表于 12-18 17:30 ?590次閱讀

    LUA例程-常用的回調(diào)函數(shù)使用說明

    詳細(xì)說明LUA腳本函數(shù)功能和對應(yīng)的應(yīng)用實例。對于LUA腳本編程有很大的幫助和提高技能。
    發(fā)表于 11-24 16:43 ?0次下載

    語法糾錯和testbench的自動生成

    在編寫Verilog代碼時,我一般都是先在編輯器寫完,因為編輯器vscode或者notepad++可以提供語法高亮和自動補(bǔ)全等功能,然后用仿真器跑仿真,但是在編寫過程中不可避免的會有一些語法的錯誤
    發(fā)表于 10-27 07:07

    大彩講堂:VisualHMI-LUA教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)

    一、適合范圍本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內(nèi)部邏輯處理。二、概述2.1get_uint16(vtype,addr)讀取無符號短整型寄存器
    的頭像 發(fā)表于 10-13 16:40 ?1365次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-獲取和設(shè)置16位數(shù)據(jù)函數(shù)

    程序編譯運行正常但是顯示語法錯誤,為什么?

    樣例程序:can_sample.c rtconfig.h里啟用了#define RT_CAN_USING_HDR 代碼從圖中這里開始大段標(biāo)識語法錯誤: 跳轉(zhuǎn)到宏
    發(fā)表于 09-25 06:27

    如何更新 NuMaker IoT 板的 Wi-Fi 模塊固件?

    更新 NuMaker IoT 板的 Wi-Fi 模塊固件
    發(fā)表于 09-04 08:28

    請問如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態(tài)?

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態(tài)?
    發(fā)表于 08-28 07:57

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態(tài)?

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態(tài)?
    發(fā)表于 08-25 06:59

    Android 16更新亮點介紹

    Android 近期在整個平臺上推出了一系列更新,包括:發(fā)布 Android 16 并為開發(fā)者和用戶提供詳細(xì)信息,推出改進(jìn)外接顯示設(shè)備 Android 桌面體驗的開發(fā)者預(yù)覽版,為 Google
    的頭像 發(fā)表于 07-05 11:37 ?3757次閱讀

    零基礎(chǔ)學(xué)習(xí)LuatOS編程:快速上手開發(fā)實戰(zhàn)教程!

    到實踐的跨越。 學(xué)習(xí)LuatOS的主要方法之一是“運行各個功能模塊的demo代碼”,本期特別分享——LuatOS編程起步相關(guān)內(nèi)容。 ? 注意:本文檔的讀者,默認(rèn)都已經(jīng)了解初步的Lua語法。 ? 如果不懂Lua
    的頭像 發(fā)表于 06-13 17:27 ?620次閱讀
    零基礎(chǔ)學(xué)習(xí)LuatOS編程:快速上手開發(fā)實戰(zhàn)教程!

    LuatOS編程基礎(chǔ)教程:手把手帶你入門物聯(lián)網(wǎng)開發(fā)!

    設(shè)備開發(fā)之旅。 學(xué)習(xí)LuatOS的主要方法之一是“運行各個功能模塊的demo代碼”,本期特別分享——LuatOS編程起步相關(guān)內(nèi)容。 ? 注意:本文檔的讀者,默認(rèn)都已經(jīng)了解初步的Lua語法。 ? 如果
    的頭像 發(fā)表于 06-11 13:03 ?768次閱讀
    LuatOS編程基礎(chǔ)教程:手把手帶你入門物聯(lián)網(wǎng)開發(fā)!

    揭秘:硬件圈的光通信密碼——Lua+LED!

    當(dāng)Lua的輕快語法遇上LED的物理脈沖,竟能生成物聯(lián)網(wǎng)設(shè)備的社交指紋!通過定義不同的閃爍協(xié)議(如Morse光碼、RGB情緒譜),開發(fā)者們正在用光信號構(gòu)建硬件間的非語言社交網(wǎng)絡(luò)——這是智能設(shè)備獨有
    的頭像 發(fā)表于 05-15 14:29 ?537次閱讀
    揭秘:硬件圈的光通信密碼——<b class='flag-5'>Lua</b>+LED!

    harmony OS NEXT-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹

    # 鴻蒙Harmony-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹 ## 1.1 雙向數(shù)據(jù)綁定概念 在鴻蒙(HarmonyOS)應(yīng)用開發(fā)中,雙向數(shù)據(jù)改變(或雙向數(shù)據(jù)綁定)是一種讓數(shù)據(jù)·模型和UI組件之間
    的頭像 發(fā)表于 04-29 16:52 ?1251次閱讀