国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

lua | 數(shù)據(jù)類型與變量

這篇具有很好參考價值的文章主要介紹了lua | 數(shù)據(jù)類型與變量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、數(shù)據(jù)類型

8個基本類型

1.nil(空)

2.boolean(布爾)

3.number(數(shù)字)?

4.string(字符串)

?5.table(表 )

6.function(函數(shù))

7.thread(線程)

8.userdata(自定義類型)

二、變量

全局變量、局部變量與表中的域

賦值語句


?本文章為筆者學(xué)習(xí)分享

學(xué)習(xí)網(wǎng)站:Lua 基本語法 | 菜鳥教程

一、數(shù)據(jù)類型

lua是動態(tài)類型語言,變量不需要類型定義,只需要為變量賦值。

8個基本類型

數(shù)據(jù)類型 描述
nil 表示一個無效值(條件表達式中相當(dāng)于false)
boolean 包含兩個值:false和true
number 表示雙精度類型的實浮點數(shù)
string 字符串由一對雙引號或單引號來表示
function 由C或者lua編寫的函數(shù)
userdata 存儲在變量中的C數(shù)據(jù)結(jié)構(gòu)
thread 表示執(zhí)行的獨立路線,用于執(zhí)行協(xié)同程序
table lua中的table表其實是一個“關(guān)聯(lián)數(shù)組”,數(shù)組的索引可以是數(shù)字、字符串或表類型。在lua里,table的創(chuàng)建是通過“構(gòu)造表達式“來完成,最簡單的構(gòu)造表達式是{},用來創(chuàng)建一個空表。
print(type("Hello world"))      -- string
print(type(10.4*3))             -- number
print(type(print))              -- function
print(type(type))               -- function
print(type(true))               -- boolean
print(type(nil))                -- nil
print(type(type(X)))            -- string

1.nil(空)

含義:表示一種沒有任何有效值,它只有一個值 -- nil,例如打印一個沒有賦值的變量,便會輸出一個 nil 值。

nil作比較時應(yīng)該加上雙引號”

type(x)=="nil" --返回是“nil”字符串,是一個string類型

2.boolean(布爾)

?boolean類型只有兩個值:ture和false

lua把false和nil看作是false,其他都是true,數(shù)字0也是true

type(true)=boolean

type(flase)=boolean

type(nil)=nil

3.number(數(shù)字)?

lua默認只有一種number類型:double雙精度類型?

4.string(字符串)

字符串由一對雙引號"或單引號'來表示

可以用2個方括號"[[]]"來表示一塊字符串

lua | 數(shù)據(jù)類型與變量

?在對一個數(shù)字字符串上進行算術(shù)操作時,lua會嘗試將這個數(shù)字字符串轉(zhuǎn)成一個數(shù)字

lua | 數(shù)據(jù)類型與變量

字符串的連接使用的是兩個..

?lua | 數(shù)據(jù)類型與變量

?使用#來計算字符串的長度,放在字符串的前面,如:

lua | 數(shù)據(jù)類型與變量

?5.table(表 )

創(chuàng)建格式:table的創(chuàng)建是通過“構(gòu)造表達式”來完成,最簡單的構(gòu)造表達式是{},用來創(chuàng)建一個空表。

通過在表內(nèi)添加一些數(shù)據(jù)來初始化表

table不會固定長度大小,有新數(shù)據(jù)添加時table長度會自動增長,沒初始的table都是nil

local tb1={} --空表
local tbl2={"1","2","3"};--初始化創(chuàng)建表

使用:lua的表其實是一個"關(guān)聯(lián)數(shù)組",數(shù)組的索引可以是數(shù)字或字符串

local tb1={} 
tb1["key"]="value"
key=10 --key=10
a[key]=22
a[key]=a[key]+11 --value=33

初始索引:默認從1開始,而不是0

6.function(函數(shù))

在lua中,函數(shù)被看作是”第一類值(First-Class Value)“

函數(shù)可以存在變量里

function可以以匿名函數(shù)(anonymous function)的方式通過參數(shù)傳遞

function A(key,val) 
function(key,val) --匿名函數(shù)

7.thread(線程)

? lua內(nèi)最主要的線程是協(xié)同程序(co-routine)。它跟線程差不多,擁有自己的獨立棧、局部變量和指令指針,可以跟其他協(xié)同程序共享全局變量和塔器大部分東西。

線程與協(xié)程的區(qū)別:線程可以同時多個運行,而協(xié)程任意時刻只能運行一個,并且處于運行狀態(tài)的協(xié)程只有被掛起(suspend)時才會暫停。

8.userdata(自定義類型)

userdata是一種用戶自定義數(shù)據(jù)。用于表示一種由應(yīng)用程序或C/C++語言庫所創(chuàng)建的類型,可以將任意C/C++的任意數(shù)據(jù)類型的數(shù)據(jù)(通常是(struct和指針)存儲在Lua變量中調(diào)用。

二、變量

全局變量、局部變量與表中的域

局部變量:使用local關(guān)鍵字定義的變量,未使用local進行顯示聲明的變量是局部變量。

局部變量的作用域:從聲明處開始到所在語句塊結(jié)束

lua | 數(shù)據(jù)類型與變量

應(yīng)該盡可能的使用局部變量,有兩個好處:

  • 避免命名沖突
  • 訪問局部變量的速度比全局變量更快?

賦值語句

1.可以多個賦值?

格式:變量列表和值列表的各個元素用逗號分開,賦值語句右邊的值會依次賦給左邊的變量

a,b=10,2*x  --a=10;n=2*x

順序:先計算右邊所有的值,然后再執(zhí)行賦值操作

a=0 --a=0
b=a+1; --(1)a+1=1,(2)b=1

變量個數(shù)和值的個數(shù)不一致,lua會以變量個數(shù)為基礎(chǔ)采取以下策略:

  • 變量個數(shù)>值個數(shù),按變量個數(shù)補足nil
  • <,多余的值會被忽略
a,b,c=0,1  --a=0,b=1,c=nil
a,b=0,1,2  --a=0,b=1
a,b,c=0 --a=0,b=nil,c=nil 這個易錯!

多值賦值經(jīng)常用來交換變量,或?qū)⒑瘮?shù)調(diào)用返回給變量,如下代碼。fun()返回的值會一次賦值給變量a、b文章來源地址http://www.zghlxwxcb.cn/news/detail-437218.html

a,b=fun()

到了這里,關(guān)于lua | 數(shù)據(jù)類型與變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Rust變量、常量聲明與基本數(shù)據(jù)類型

    Rust是一門系統(tǒng)級別的編程語言,注重安全性、性能和并發(fā)。在這篇博客中,我們將介紹Rust中的變量、常量聲明以及基本數(shù)據(jù)類型,并通過示例說明每一種類型的用法。 在Rust中,使用 let 聲明變量。變量默認是不可變的,要使其可變,需要使用 mut 。 常量使用

    2024年01月18日
    瀏覽(27)
  • go數(shù)據(jù)類型-空結(jié)構(gòu)體、空接口、nil

    有經(jīng)驗的開發(fā)人員都知道,所有的空結(jié)構(gòu)體是指向一個 zerobase的地址,而且大小為0 一般用來作結(jié)合map作為set 或者 在channel中 傳遞信號。 能看到當(dāng)一個空結(jié)構(gòu)體中,包含了其他類型的變量,就不指向 zerobase。 go中的接口都是隱式的,增加的封裝的靈活性,也為閱讀源碼增加了

    2024年02月05日
    瀏覽(28)
  • C++ 用戶輸入與數(shù)據(jù)類型詳解:建立基本計算器及變量類型

    你已經(jīng)學(xué)習(xí)了 cout 用于輸出(打印)值?,F(xiàn)在我們將使用 cin 來獲取用戶輸入。 cin 是一個預(yù)定義變量,它使用提取運算符( )從鍵盤讀取數(shù)據(jù)。 在下面的示例中,用戶可以輸入一個數(shù)字,該數(shù)字存儲在變量 x 中。然后我們打印 x 的值: 示例 需要注意的是: cout 的發(fā)音是

    2024年03月26日
    瀏覽(17)
  • 【Go基礎(chǔ)】編譯、變量、常量、基本數(shù)據(jù)類型、字符串

    【Go基礎(chǔ)】編譯、變量、常量、基本數(shù)據(jù)類型、字符串

    面試題文檔下鏈接點擊這里免積分下載 go語言入門到精通點擊這里免積分下載 使用 go build 1.在項目目錄下執(zhí)行 2.在其他路徑下編譯 go build ,需要再后面加上項目的路徑(項目路徑從GOPATH/src后開始寫起,編譯之后的可執(zhí)行文件就保存再當(dāng)前目錄) 3.打包的時候自定義名字:

    2024年02月09日
    瀏覽(28)
  • 第02章_變量與運算符(關(guān)鍵字,標(biāo)識符,變量,基本數(shù)據(jù)類型,進制,運算符,字符集)

    第02章_變量與運算符(關(guān)鍵字,標(biāo)識符,變量,基本數(shù)據(jù)類型,進制,運算符,字符集)

    定義: 被Java語言賦予了特殊含義,用做專門用途的字符串(或單詞) HelloWorld案例中,出現(xiàn)的有 class 、 public 、 static 、 void 等,這些單詞已經(jīng)被Java定義好了。 特點:全部都是 小寫字母 。 比較多,不需要死記硬背,學(xué)到哪里記到哪里即可。 官方地址:

    2024年01月22日
    瀏覽(21)
  • 關(guān)于Swift中閉包和OC中block對局部變量基本數(shù)據(jù)類型值的捕獲

    關(guān)于Swift中閉包和OC中block對局部變量基本數(shù)據(jù)類型值的捕獲

    翻了很多文章,發(fā)現(xiàn)關(guān)于Swift閉包關(guān)于上下文變量捕獲這塊,都沒有說的很詳細,或者Swift2這樣的老版本已經(jīng)不適用了,問了GPT也是和自己實驗的結(jié)果不一樣,記錄下來。 首先,回顧一下OC中的block。 block對局部變量基本數(shù)據(jù)類型的捕獲,是在創(chuàng)建時捕獲了值,并保存副本在自

    2024年02月16日
    瀏覽(23)
  • golang interface類型的nil

    golang interface類型的nil

    golang中interface變量,底層兩個對象來存,一個是type、一個是value,只有type、value都為nil時,interface變量才是nil 輸出結(jié)果為: 可以看到interface 變量i,雖然值為nil,但類型是Student 如果想判斷變量value是否為空,可以指定type

    2024年02月14日
    瀏覽(21)
  • Python(三)變量的6種基本類型

    延續(xù)上一章,本章介紹:set(集合)、dictionary(字典) 數(shù)據(jù)結(jié)構(gòu) 是否可變 是否重復(fù) 是否有序 定義符號 列表(list) 可變 可重復(fù) 有序 [] 元組(tuple) 不可變 可重復(fù) 有序 () 字典(dictionary) 可變 可重復(fù) 無序 {key:value} 集合(set) 可變 不可重復(fù) 無序 {} 目錄 字典 定義 可變

    2024年02月11日
    瀏覽(15)
  • C++第二章:變量和基本內(nèi)置類型

    C++第二章:變量和基本內(nèi)置類型

    C++定義了一套包括算數(shù)類型和空類型在內(nèi)的基本數(shù)據(jù)類型。 其中算數(shù)類型包含了字符、整形數(shù)、布爾值、浮點數(shù)??疹愋筒粚?yīng)具體的值,僅用于一些特殊的場合,例如最常見的是:當(dāng)一個函數(shù)不返回任何值時使用空類型作為返回類型。 算數(shù)類型分為兩種:整形(包括字符和

    2024年02月06日
    瀏覽(25)
  • Lua學(xué)習(xí)-1 基礎(chǔ)數(shù)據(jù)類型

    nil 表示無效值 boolean 只有 true 和 false number 數(shù)值類型可以保存實數(shù),包括整數(shù)和浮點數(shù),整數(shù)可以是十進制和十六進制,由一串?dāng)?shù)字序列組成。如果是0x開始,則表示是一個十六進制數(shù)。 string 使用單引號或者雙引號包含的值即為string function 函數(shù) userData 用戶自定義的 數(shù)據(jù)結(jié)構(gòu)

    2024年02月16日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包