Lua初學習 9-12 基礎

1:string 轉 number :tonumber(string)

2: number 轉 string :tostring(number)

3:string API:

? ? ? ?Lua中的字符串是不可變值,a = "cocotang" ?string.gsub(a,"c","z") ?print(a) ----> cocotang

? ? ? ? 1獲得字符串長度:string.len(string) ?或者 #string

? ? ? ? 2拼接2個字符串: string..string ? ? && ? ?如果是2個number number .. number(空格不然誤認為小數點)

? ? ? ? 3截取字符串,組成新的字符串:string.gsub(a,"cc","zz",index) a字符串中的 cc 由 zz 代替 直到index位置

? ? ? ? 4查找字符串中的某字符串位置:string.find(a,"coco") 返回2個值 c 的index 與 o的index

4:io.read() 獲取控制臺輸入

5: Table創建一個List(數組)

? ? ? ? ? ?a={}

? ? ? ? ? ?1:當key 賦值1-10時,len = 10

? ? ? ? ? ?2:當key 賦值0-10時,len = 10 (同上)

? ? ? ? ? Lua中通常用 1 來做 Index的初始值 ?(table.maxn(a))--->返回最大正索引 Index

6:取精度?

? ? ?x = 3.123456 print(x-x%0.001) ? ---->3.123

? ? ?x%1 結果是 x的小數部分 0.123456

? ? ?x-x%1 結果是 x的整數部分 3 ??

? ? ?x-x%0.001 結果是 x取小數點后三位

7:運算符

? ? ?> < == >= <= 同于C#

? ? ? ~= 不等于(C# !=)

? ? ? Lua中取反 not(空格) ? (C# !)

8:運算優先級

? ? ? 基本同于C#,直接用括號顯示的表現優先級 容易理解

? ? ? -x^2 ?-------> -(x^2)

? ? ? x^y^z --------->x^(y^z)

9:Table構造式

? ? ?a = {x = 10 , y = 20} 等價于a ={["x"]=10 ,["y" =20]} ?等價于 a = {} a["x"] =10 a["y"] =20 ?等價于 a = {} a.x= 10 a.y = 20

10:Table里面刪除一個變量

? ? ? a = {} a.x= 10 ?a.x= nil

11:交換變量(Lua里面有點特別) (多重賦值 調函數時傳入的實參多余或者少于形參時,與多重賦值非常相似)

? ? ?C#中:int a=1;int b=2; 交換: int c = a; a =b; b=c;

? ? ?Lua中:a = 1 b = 2 ?交換:a,b = b,a

? ? ?a,b = 1,2,3 ---->舍棄3

? ? ?a,b,c = 1,2 ?----->c=nil

12:流程控制

? ? ?1由于Lua不支持Switch語句,所以一連串的if elseif 是很常見的

? ? ?2循環中用break可以跳出循環

13:Lua中沒有 ++ --,并且 += ?-=也沒有 ? ?如果遞增1 a=a+1

14:Lua中的Foreach( Generic for)

? ? ? 1遍歷所有k: a = {x=1,y=2,z=3;"one","two","three"}

? ? ? ? for k in pairs(a) do

? ? ? ? print(k) ?------> ?1 2 3 y x z

? ? ? ? end

? ? ? ?2遍歷所有v:

? ? ? ? ?for i , v in pairs(a) do

? ? ? ? ?print(v) ?-------> one two three 2 1 3

? ? ? ? ?end

? ? ? ? 2-2 遍歷所有的v? ? ? ? ?

? ? ? ??for k in pairs(a) do

? ? ? ? print(a[k]) ?------> ?1 2 3 y x z

? ? ? ? end

? ? ? ? 3遍歷數組a的所有值

? ? ? ? for i , v in ipairs(a) do

? ? ? ? print(v) ?---------> one two three

? ? ? ? end

? ? 值得注意的是:遍歷數組a中的值,ipairs(a) 輸出的并不是所有的value,以后慢慢了解

15:逆向Table(反轉key value)

? ? ? ?a = {x=1, y =2, z =3}

? ? ? ?b = {}

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

? ? ? ?b[v] = k

? ? ? ?end

16:break與return

? ? ? ?break跳出循環,return跳出方法

? ? ? ?注意:但是如果return在if前面 ?報錯

17:方法的調用

? ? ? ?a = {}

? ? ? ?function a:Test() print("orz") end

? ? ? ?第一種調:a:Test() ? ?第二種調:a.Test() 注意第二種隱式的傳入了a ?--->a.Test(a)

? ? ? ?假如 function有一個參數,用第二種調 a.Test(n) 報錯,應該---> a.Test(a,n)

18:方法的返回值

? ? ?function foo1() end 無返回值

? ? ?function foo2() return 1 end 返回一個值

? ? ?function foo3() return 1,2 end 返回兩個值

? ? ?x,y = foo3() ----> x =1, y = 2

? ? ?x = foo3() ?------> x =1 , ?2被丟棄

? ? ?x,y,z = foo3() ----->x=1,y=2,z=nil

? ? ?x,y = foo3(),99 ?----->x = 1,y = 99

? ? ?x,y = foo1(),20,30 ---->x = nil , y =20 ? ?30被丟棄

? ? ?注意:Table 可以接受 函數返回的所有值,前提是函數作為table構造式中最后一個參數,如果不是最后一個參數,那么只會取第一個返回值,無返回值則為nil

? ? ?如果強行讓函數返回第一個值,可以用一對小括號 括起來函數 ---> (foo()) 不管foo有幾個返回值,都只返回第一個,沒有返回nil

? ? ? 特殊內置函數 unpack:它接受一個數組作為參數,并從下標1開始返回該數組的所有元素

? ? ? ?例如:print(unpack({1,2,3,4,5,66})) ? ----> 1,2,3,4,5,66

19:?算術類元方法

__add()?? + 運算對應的元方法
__sub()? ?
__mul
__div
__mod
__pow
__unm???? 相反數
__concat? .. 運算對應的元方法

?

? ? ??

? ? ? ? ??

? ? ? ? ?

轉載于:https://www.cnblogs.com/cocotang/p/5864861.html

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

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

相關文章

iview下拉選

問題描述&#xff1a;創建場景&#xff0c;連續創建場景時&#xff0c;第一個場景創建成功后&#xff0c;第二次進入創建窗口&#xff0c;點擊測試任務下拉編輯只有上次創建成功的那一個任務候選&#xff0c;選中該任務中&#xff0c;關聯腳本也只有上次成功創建的唯一個候選下…

JAVA實現在面板中添加圖表_Java 創建PowerPoint圖表并為其添加趨勢線

圖表&#xff0c;是指將既得數據用圖形的方式表示出來。在前文中我們介紹過如何使用Java程序來為Excel文檔創建圖表的方法。本文將通過使用Java程序來演示如何創建PowerPoint圖表及為圖表添加趨勢線。趨勢線的運用能夠顯示數據的變化趨勢&#xff0c;同時能夠幫助預測數據的未來…

code warri_我參加了有史以來的第一屆Warri Tech宣傳活動。 這是我學到的。

code warriIn the city of Warri, Delta state of Nigeria, there is a saying that goes “Warri nor dey carry last, if e hard well well na draw”. This translates to “Warri is never behind in the scheme of things (events)”.在尼日利亞三角洲州的沃里市&#xff…

Socket編程小結

目錄&#xff1a; 什么是 socket&#xff1f;... 1 Internet 套接字的兩種類型... 1 網絡理論... 2 結構體... 2 本機轉換... 3 IP 地址和如何處理它們... 4 socket()函數... 4 bind()函數... 4 connect()程序... 5 listen()函數... 6 accept()函數... 6 send() and recv() 7 …

idea設置中文界面_《英雄聯盟手游》設置界面中文翻譯圖分享 外服漢化界面一覽...

導讀 英雄聯盟手游目前以及正式上線了&#xff0c;不過現在的話是沒有中文版的&#xff0c;只有外服&#xff0c;所有很多地方是看不懂的&#xff0c;也不明白的&#xff0c;這樣的話就需要翻譯了&#xff0c;具體要怎么設置會比較&#xff0c;相關的步驟是什么呢&#xff1f;下…

windows 2008 r2 系統默認80端口被系統占用的處理

--windows 2008 r2 系統默認80端口被系統占用的處理 --使用netstat 命令查看指定端口netstat -ano | findstr :80----如下所示&#xff1a;本地的80端口被進程為4的占用 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 192.168.1.207:60652 …

java實現封裝的三部_Java 封裝

Java 封裝在面向對象程式設計方法中&#xff0c;封裝(英語&#xff1a;Encapsulation)是指&#xff0c;一種將抽象性函式接口的實作細節部份包裝、隱藏起來的方法。封裝可以被認為是一個保護屏障&#xff0c;防止該類的代碼和數據被外部類定義的代碼隨機訪問。要訪問該類的代碼…

小豬短租超棒新房_freeCodeCamp講座簡介:您可以免費觀看的超棒技術講座

小豬短租超棒新房by Quincy Larson昆西拉爾森(Quincy Larson) freeCodeCamp講座簡介&#xff1a;您可以免費觀看的超棒技術講座 (Introducing freeCodeCamp Talks: awesome tech talks you can watch for free) Developers give thousands of tech talks every year at confer…

安卓10不支持qmc解碼_官宣:安卓10已發布!21款手機已適配,小米華為率先支持...

隨著今天凌晨谷歌 I/O 大會的召開&#xff0c;Android Q 也就是安卓10正式官宣&#xff0c;新版的安卓10加入了諸多新手勢&#xff0c;從 Home 鍵設計上看&#xff0c;安卓10 的新版手勢很大程度上有疑似借鑒 iOS 的手勢&#xff0c;底部一個長條&#xff0c;作為 Home 用來返回…

linux系統編程之進程(七):system()函數使用【轉】

本文轉載自&#xff1a;http://www.cnblogs.com/mickole/p/3187974.html 一&#xff0c;system()理解 功能&#xff1a;system()函數調用“/bin/sh -c command”執行特定的命令&#xff0c;阻塞當前進程直到command命令執行完畢 原型&#xff1a; int system(const char *comma…

安裝了最新版本的java 用友nc打不開_NC無法安裝客戶端插件,不能進入用友NC系統登陸界面...

NC無法安裝客戶端插件&#xff0c;不能進入用友NC系統登陸界面問題現象現象1&#xff1a;可以打開web界面&#xff0c;但無法進入登陸界面&#xff0c;一直停留在右圖所示界面。現象2&#xff1a;系統提示安全警告問題原因在使用IE首次登錄NC系統時&#xff0c;系統會自動下載N…

漢王云名片識別(SM)組件開發詳解

大家好&#xff0c;最近在DeviceOne平臺上做了一個漢王云名片識別的功能組件。下面把我開發過程給大家做一個分享&#xff0c;希望可以幫助到大家。 下面我把我的思路給大家講解一下。1.找到我要集成的sdk&#xff0c;也就是漢王云名片的sdk下載&#xff08;android和ios&#…

[App Store Connect幫助]八、維護您的 App(4.2)查看評分與評論

您可以查看 App 的總評分或單個顧客評論。如有必要&#xff0c;您可以針對某條評論報告問題。 【注】顧客可以為您的 iOS 和 macOS App 評分并撰寫評論&#xff0c;但只能為 Apple TVOS App 評分。 必要職能&#xff1a;“帳戶持有人”職能、“管理”職能、“App 管理”職能、“…

visio studio json工具_《產品經理入門指南》彩蛋2:別技淫原型圖!你的Visio和Balsamiq Mockup入門了嗎?...

溫馨提示&#xff1a;如果你有關于產品經理方面的任何問題&#xff0c;歡迎關注我的微信公眾號與我互動。最新的免費系統的產品經理課程《老司機帶你做產品》已經推出&#xff0c;請關注微信公眾號&#xff1a;iamliuwenzhi很多產品新人剛開始工作時&#xff0c;喜歡一拿到需求…

漸進式web應用程序_通過漸進式Web應用程序吸引用戶并增強他們的體驗

漸進式web應用程序by Dave Gray戴夫格雷(Dave Gray) 通過漸進式Web應用程序吸引用戶并增強他們的體驗 (Engage your users and enhance their experience with Progressive Web Apps) 什么是漸進式Web應用程序&#xff1f; (What is a Progressive Web App?) A Progressive W…

mysql牽引例子_MySQL學習06(事務和索引)

事務概述什么是事務事務就是將一組SQL語句放在同一批次內去執行如果一個SQL語句出錯,則該批次內的所有SQL都將被取消執行MySQL事務處理只支持InnoDB和BDB數據表類型事務的ACID原則原子性(Atomic)整個事務中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#…

android操作系統 真的嗎_旋挖機培訓學校真的能學會嗎,旋挖鉆機到底有哪些操作系統...

旋挖機培訓學校真的能學會嗎添加微&#xff1a;yywyyc 旋挖鉆機到底有哪些操作系統【前言】很多使用旋挖鉆機或者想要了解旋挖鉆機的工程公司可能不是特別了解旋挖鉆機本身的系統以及部件&#xff0c;本篇文章針對旋挖鉆機的操作系統來給大家介紹一下&#xff0c;讓大家了…

WebAPI 2參數綁定方法

簡單類型參數 Example 1: Sending a simple parameter in the Url [RoutePrefix("api/values")] public class ValuesController : ApiController {// http://localhost:49407/api/values/example1?id2[Route("example1")][HttpGet]public string Get(int…

推薦幾個自己經常去的一些博客和網站

唐巧的技術博客objc中國Ray WenderlichCocoaDocs.orgNSHipsterLukes HomepageCocoabit | 做自己喜歡的事情轉載于:https://www.cnblogs.com/faceup/p/10423259.html

創建hugo博客_Hugo + Firebase:如何在幾分鐘內免費創建自己的靜態網站

創建hugo博客by Aravind Putrevu通過Aravind Putrevu Hugo Firebase&#xff1a;如何在幾分鐘內免費創建自己的靜態網站 (Hugo Firebase: How to create your own static website for free in minutes) Ever thought of having your own website for putting up your projec…