鍍金池/ 教程/ C/ Lua變量
Lua邏輯運(yùn)算符
Lua其他運(yùn)算符
Lua協(xié)同程序
Lua break語(yǔ)句
Lua運(yùn)算符
Lua面向?qū)ο?/span>
Lua教程
Lua函數(shù)
Lua數(shù)據(jù)庫(kù)/MySQL操作
Lua關(guān)系運(yùn)算符
Lua錯(cuò)誤處理
Lua數(shù)據(jù)類型
Lua嵌套循環(huán)
Lua變量
Lua基本語(yǔ)法
Lua字符串
Lua for循環(huán)
Lua if語(yǔ)句嵌套
Lua運(yùn)算符優(yōu)先級(jí)
Lua Web編程
Lua while循環(huán)
Lua開發(fā)環(huán)境
Lua if...else語(yǔ)句
Lua標(biāo)準(zhǔn)庫(kù)
Lua游戲編程
Lua if語(yǔ)句
Lua算術(shù)運(yùn)算符
Lua表格
Lua決策
Lua文件I/O
Lua循環(huán)
Lua數(shù)組
Lua元表
Lua repeat...until循環(huán)
Lua迭代器
Lua調(diào)試
Lua模塊
Lua垃圾收集

Lua變量

變量不過(guò)是存儲(chǔ)到區(qū)域項(xiàng)目可以操作的名稱。它可以容納不同類型的值,包括函數(shù)和表格。

變量名可以由字母,數(shù)字和下劃線。它必須以字母或下劃線。大寫和小寫字母是不同的,因?yàn)長(zhǎng)ua是區(qū)分大小寫的。有八種基本類型值在Lua中:

在Lua,盡管我們沒有變量的數(shù)據(jù)類型,我們基于該變量范圍的三種類型。

  • 全局變量:所有的變量默是全局除非顯式地聲明為局部。

  • 局部變量:當(dāng)類型被指定為局部的一個(gè)變量,它的范圍是有限的在自己的范圍內(nèi)使用。

  • 表字段:這是一種特殊類型的變量,可以除了nil,包括功能不放任何東西。

在Lua變量定義:

定義一個(gè)變量意味著告訴解釋器在哪里和多少創(chuàng)建存儲(chǔ)的變量。變量的定義有一個(gè)可選的類型和包含該類型,如下一個(gè)或多個(gè)變量的列表:

type variable_list;

在這里,類型是可選局部或nor型指定使其全局,variable_list可能包含由逗號(hào)分隔的一個(gè)或多個(gè)標(biāo)識(shí)符名稱。一些有效的聲明是如下所示:

local    i, j
local    i
local    a,c

同一行 local i, j 均聲明并定義了變量i和j;這指示解釋器創(chuàng)建一個(gè)名為i, j 變量和限制的范圍是局部的。

變量可以被初始化(分配一個(gè)初始值)聲明。初始化包括一個(gè)等號(hào)后面的常量表達(dá)式如下:

type variable_list = value_list;

一些實(shí)例是:

local d , f = 5 ,10 --declaration of d and f as local variables. 
d , f = 5, 10;      --declaration of d and f as global variables. 
d, f = 10           --[[declaration of d and f as global variables. 
                        Here value of f is nil --]]

對(duì)于沒有初始化的定義:具有靜態(tài)存儲(chǔ)變量隱式初始化為nil。

在Lua聲明變量:

正如上面的例子中看到,分配多個(gè)變量遵循variable_list和值表格式。在上面的例子中l(wèi)ocal d , f = 5 ,10,d和f中的值列表variable_list為5和10。

在Lua值設(shè)定發(fā)生像variable_list在第一個(gè)值和第一個(gè)變量值表等等。因此d 的值是5和f的值是10。

例子

試試下面的例子,其中變量都在上面被聲明已經(jīng)確定,主函數(shù)中初始化:


-- Variable definition:
local a, b
-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b
print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0
print("value of f", f)

當(dāng)上述代碼被構(gòu)建和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

value of a:	10
value of b:	30
value of a:	30
value of b:	10
value of f	23.333333333333

Lua左值和右值:

在Lua有兩種表達(dá)式:

  1. 左值:是指一個(gè)內(nèi)存位置的表達(dá)式被稱為“左值”的表達(dá)式。左值可能會(huì)出現(xiàn)無(wú)論是左邊或右側(cè)。

  2. 右值:術(shù)語(yǔ)右值指的是存儲(chǔ)在內(nèi)存中某個(gè)地址的數(shù)據(jù)值。右值是不能分配給它的值,這意味著一個(gè)右值可能會(huì)出現(xiàn)在賦值的右側(cè)而不是左側(cè)的表達(dá)式。

變量是左值,因此可能會(huì)出現(xiàn)在賦值左側(cè)。數(shù)字文本是右值,因此可能無(wú)法分配的,不能出現(xiàn)在左側(cè)。下面是一個(gè)有效的聲明:

g = 20

但是,下面不是一個(gè)有效的聲明,并會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤:

10 = 20

在Lua編程語(yǔ)言中,除了上述類型的分配的,所以可以有多個(gè)左值和右值在相同的單一語(yǔ)句。它如下所示。

g,l = 20,30

在上面的語(yǔ)句中,20被分配給g和30被分配到l。


下一篇:Lua運(yùn)算符