成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Lua基礎:巧說table的幾種構造方式

移動開發
之前對于Lua的研究都是紙上談兵,沒有真正的項目練手,現在公司的項目基本上都是用Lua開發,是時候補充一下我那蹩腳的Lua知識了。

[[119187]]

之前對于Lua的研究都是紙上談兵,沒有真正的項目練手,現在公司的項目基本上都是用Lua開發,是時候補充一下我那蹩腳的Lua知識了。

基礎數據類型、表達式、循環結構什么的我就不說了,這么簡單的東西說了也要被大家噴。

今天我想說說table的幾種構造方式。

0.Lua調試工具——LuaEditor

首先,如果你是***次接觸Lua,請補充一下Lua的最基本之中的基礎語法(小若:O O!),然后下載一個LuaEditor工具,用來查看Lua執行效果,當然也可以調試,本篇內容不解釋這個工具。下載地址:http://www.bego.cc/file/22357242 當然,也可以百度一下。

1.什么是table?

table是Lua最復雜***大的數據結構,Lua本身并不是面向對象語言,但是對面向對象中毒比較深的程序員,可以借助table”***”地模擬 面向對象編程。最簡單地,我們可以把table理解為數組,最復雜的,我們可以把table理解為”世間萬物”,因為它可以創造出很多你想象不到的東西。 一個字,自由度非常大~!

2.如何創建一個table?

創建table是一件很復雜的事情,不知道大家頂不頂得住,試試看,如下:local a = {}

  1. local a = {} 

這樣就創建了一個table了。

3.如何初始化一個table

嗷,雖然創建table已經很復雜了,更復雜的還在后面,怎么初始化table?看看下面的代碼:

  1. local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"
  2. print(a["x"]); 

在LuaEditor中創建一個lua文件,輸入以上代碼,保存,然后按F5運行,我們將看到輸出窗口輸出了一個數字:12。

這挺神奇的,感覺就像是在定義數組,不是嗎?

table間的元素用逗號分隔,["x"] = 12代表構造一個table元素,下標為”x”,值為12。

嗷~!我就等旁白問這個問題,旁白你笨蛋啊,我只是說table像數組,我沒有說它就是數組,table支持幾乎是所有類型的下標,包括函數。

4.有更簡潔的方式

這種初始化方式看起來太復雜了,有沒有簡單點的?看看下面的代碼:

  1. local a = {x = 12, mutou = 99, [3] = "hello"
  2. print(a["x"]); 

運行結果仍然是輸出12,也就是說,對于字符串下標,我們可以省略方框和雙引號,但是數字下標不可以,千萬不要搞混了。

但是,a["x"]這種調用方式也很煩人不是嗎?程序員都很懶的,所以Lua支持一下這種方式的調用:

  1. local a = {x = 12, mutou = 99, [3] = "hello"
  2. rint(a.x); 

輸出結果仍然是12,也就是說,對于字符串下標,可以直接用a.x的形式調用,也是省略了方框和雙引號,初始化和調用方式的規則一樣,這樣大家就不會搞混了,記住,是字符串下標才這么做。

記住,是字符串下標才這么做。

記住,是字符串下標才這么做。

5.想要默認數字索引怎么辦?

如果說,大家習慣了數組,用數字下標,又不想自己一個個數字地定義,比如:

  1. local a = {[1] = 12, [2] = 43, [3] = 45, [4] = 90

沒關系,Lua又為愛偷懶的程序員提供了一招,如下:

  1. local a = {12434590
  2. print(a[1]); 

看看a[1]輸出的值是不是12?

再一次警告旁白,table類似數組,但它絕對不是數組。

table默認的***個索引下標是1,并且很多相關的函數也假設table的***個索引下標為1,所以大家***遵守這個規則。

6.更強大的應用之table的table

table什么都能放,當然也能放table了,如下:

  1. </pre> 
  2. local a = { 
  3.  {x = 1y = 2}, 
  4.  {x = 3y = 10
  5. print(a[1].x); 
  6. <pre> 

我們定義了一個table,命名為a,table有兩個元素,分別是兩個沒有名字的table,根據第5條所說的規則,沒有顯示指定下標,那Lua就會默認給table的元素賦予下標(從1開始)。

因此,a的***個元素就是{x = 1, y = 2},調用a的***個元素的方式為:a[1]

由于a[1]又是一個table,所以,再次調用table的x下標的值:a[1].x

這樣就OK了。

7.更強大的應用之函數下標

我們***來試試更好玩的,用一個函數當table的下標:

  1. </pre> 
  2. function test() 
  3.  print("Hello Table"); 
  4. end 
  5.   
  6. local a = {[test] = 1} 
  7. print(a[test]); 
  8. <pre> 

定義了一個函數test,然后用test作為下標定義了table的一個元素,值為1。

這很奇怪不是嗎?但是有時候這樣確實很有用,這里暫時不解釋。

OK,關于table的構造方式,暫時說這么多,有點累了,晚安。

本文來自[笨木頭與游戲開發]

原文地址:http://www.benmutou.com/archives/627

責任編輯:閆佳明 來源: benmutou
相關推薦

2021-05-07 16:19:36

異步編程Java線程

2010-09-25 14:48:55

SQL連接

2021-01-19 11:56:19

Python開發語言

2009-12-11 09:20:09

Visual Stud

2010-06-10 13:00:18

RIP協議

2023-09-07 13:21:00

Linux軟件

2023-02-08 08:43:55

前端繼承原型

2021-06-16 07:02:22

Python方式郵件

2010-11-24 09:56:20

mysql拷貝表

2021-10-07 20:36:45

Redis集群場景

2021-08-02 11:13:28

人工智能機器學習技術

2010-08-17 10:22:09

路由器故障

2010-04-13 11:13:02

2024-05-10 07:44:23

C#進程程序

2011-06-20 10:36:29

SEO

2025-01-20 00:13:19

TypeScript操作符數據類型

2024-11-06 09:26:48

SpringprofileENV

2021-01-06 08:04:30

Linux方式提權

2019-04-30 10:00:59

CSS居中前端

2023-10-25 18:18:10

Python腳本代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新一级毛片 | 黄色在线免费观看 | 国产激情在线 | 中国一级大黄大片 | 欧美在线不卡 | 五月婷婷视频 | 日韩精品在线播放 | 婷婷色婷婷 | 久久福利电影 | 成在线人视频免费视频 | 久久免费精品 | 成人av免费 | 黄色av免费 | 国产乱码精品一区二区三区五月婷 | 久草成人网 | 亚洲国产精品视频 | 777zyz色资源站在线观看 | 亚洲欧美一区二区三区在线 | 久久精品视频91 | 日韩不卡一区二区三区 | 亚洲成人精品一区 | 在线一区 | 精品亚洲永久免费精品 | 欧美一区二区三区 | 国产精品美女一区二区三区 | 成人一级黄色毛片 | 一区二区三区在线看 | 蜜桃臀av一区二区三区 | 国产99久久 | 欧美视频一级 | 黄频免费 | 国产一级一级国产 | 国产日韩欧美中文 | 玖玖玖av| 国产国语精品 | 国产欧美一区二区三区国产幕精品 | 日韩成人在线视频 | www免费视频 | 一本一道久久a久久精品综合 | www.99热.com| 亚洲午夜在线 |