婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua學習筆記之類型與值

Lua學習筆記之類型與值

熱門標簽:漳州智云呼電話機器人 個人怎么在地圖標注需要的店鋪 冀州市地圖標注 武漢外呼防封系統多少錢 百度地圖標注早餐區域 新岸線智能電銷機器人 清朝地圖標注哈爾濱 怎么去除地圖標注 地圖標注大廈

基礎介紹

Lua是一種動態類型的語言。在語言中沒有類型定義的語法,每個值都帶有其自身的類型信息。在Lua中有8種基本類型,分別是:

nil(空)類型

boolean(布爾)類型

number(數字)類型

string(字符串)類型

userdata(自定義類型)

function(函數)類型

thread(線程)類型

table(表)類型

以上是Lua中的8中基本類型,我們可以使用type函數,判斷一個值得類型,type函數返回一個對應類型的字符串描述。例如:

local iValue = 10
local fValue = 10.2
local strValue = "Hello World"
local funcValue = print
local bValue = true
local nilValue = nil
local tbValue = {}
if type(iValue) == "number" then
 print("It is a number")
end
if type(fValue) == "number" then
 print("It is a number")
end
if type(strValue) == "string" then
 print("It is a string")
end
if type(funcValue) == "function" then
 print("It is a function")
end
if type(bValue) == "boolean" then
 print("It is a boolean")
end
if type(nilValue) == "nil" then
 print("It is a nil")
end
if type(tbValue) == "table" then
 print("It is a table")
end
nil(空)

nil是一種類型,它只有一個值nil。一個全局變量在第一次賦值前的默認值就是nil,將nil賦予一個全局變量等同于刪除它。Lua將nil用于表示一種“無效值”的情況,即沒有任何有效值得情況。

boolean(布爾)

boolean類型有兩個可選值:false和true。一定需要注意的是,在Lua中只有false和nil是“假”的,而除此之外的都是“真”,這和其它語言有所區別的。我之前有一個同事,就吃過這個虧。

number(數字)

number類型用于表示雙精度浮點數。Lua沒有整數類型,而Lua中的數字可以表示任何32位整數。

string(字符串)

Lua中的字符串通常表示“一個字符序列”。Lua完全采用8位編碼。Lua的字符串是不可變的值。不能像C語言中那樣直接修改字符串的某個字符,而是應該根據修改要求來創建一個新的字符串。Lua的字符串和其它對象都是自動內存管理機制所管理的對象,不需要擔心字符串的內存分配和釋放。在Lua中,字符串可以高效的處理長字符串。當字符串是多行存在時,可以使用“[[]]”符號來界定一個多行字符串,同時,Lua不會解釋其中的轉義序列。例如:

local page = [[
html xmlns="http://www.w3.org/1999/xhtml">
head>
title>xxxx/title>
/head>
body>
/body>
/html>
]]
print(page)

table(表)

table類型實現了關聯數組,關聯數組是一種具有特殊索引方式的數組;不僅可以通過整數來索引它,還可以使用字符串或其它類型的值(除了nil)來索引它。此外,table沒有固定的大小,可以動態得添加任意數量的元素到一個table中。

在Lua中,table既不是“值”,也不是“變量”,而是對象。可以將table想象成一種動態分配的對象,程序中僅僅有一個隊它們的引用(指針)。table的創建是通過“構造表達式”完成的,最簡單的構造表達式就是{}。

table永遠是匿名的,一個引用table的變量與table自身之間沒有固定的關聯性,例如以下代碼:

local a = {} -- 創建一個table,并將它的引用存儲在a
a["x"] = 10
local b = a -- b與a引用同一個table
print(b["x"])
b["x"] = 20
print(a["x"])

b = nil -- 現在只有a還在引用table
-- 錯誤:print(b["x"])
print(a["x"])
a = nil -- 現在不存在對table的引用

當對一個table的引用為0時,Lua的垃圾收集器最終會刪除該table,并釋放它所占用的內存空間。當table的某個元素沒有初始化時,它的內容就是nil;另外還可以像全局變量一樣,將nil賦予table的某個元素來刪除該元素。

在Lua中,對于a["name"]這種形式的寫法提供了一種更簡便的寫法,可以直接輸入a.name。先看看以下代碼:

local a = {} -- 創建一個table,并將它的引用存儲在a
a["x"] = 10
local b = a -- b與a引用同一個table
print(b["x"])
b["x"] = 20
print(a["x"])

b = nil -- 現在只有a還在引用table
-- 錯誤:print(b["x"])
print(a["x"])
a = nil -- 現在不存在對table的引用

這種寫法本身提供了簡便性,但是有的時候,卻給程序員帶來了困惑;我就常常會把a.x和a[x]搞錯,a.x表示a["x"],表示以字符串”x”來索引table;而a[x]是以變量x的值來索引table。通過下面這段代碼,來看看它們之間的區別:

local a = {}
a["name"] = 10
print(a.name) -- 等價于print(a["name"])

在Lua 5.1中,長度操作符“#”用于返回一個數組或線性表的最后一個索引值。在實際項目中,我們經常使用該操作符來獲取數組或線性表的長度。但是使用該操作符是存在陷阱的,比如下面一段代碼:

local a = {}
x= "y"
a[x] = 10
print(a[x]) -->10 相當于a["y"]
print(a.x)  -->nil 相當于a["x"]
print(a.y)  -->10 相當于a["y"]

這該輸出多少呢?

在Lua中,對于所有未初始化的元素的索引結果都是nil。Lua將nil作為界定數組結尾的標志。當一個數組有“空隙”時,即中間含有nil時,長度操作符會認為這些nil元素就是結尾標記。因為a[1] = nil,所以,對于上述代碼的輸出應該是0。所以,在處理table的時候,需要考慮這個問題。那么對于含有nil的table,如何獲取它的長度呢?我們可以使用table.maxn,它將返回一個table的最大正索引數,如下所示:

local a = {}
a[1000] = 1
print(table.maxn(a)) -->1000

function(函數)

在Lua中,函數被當做值來對待,這表示函數可以存儲在變量中,可以通過參數傳遞給其它函數,還可以作為其它函數的返回值。Lua既可以調用自身Lua語言編寫的函數,又可以調用以C語言編寫的函數。Lua所有的標準庫都是用C語言寫的。我在之后,還會詳細的總結Lua中的函數的。在這里就說這么多。

userdata(自定義類型)和thread(線程)

userdata用于表示一種由應用程序或C語言庫所創建的新類型。由于userdata類型可以將任意的C語言數據存儲到Lua變量中。在Lua中,這種類型沒有太多的預定義操作,只能進行賦值和相等性測試。

thread主要用于“協同程序”。

總結

這篇基本就是Lua基本類型的掃盲文章,希望對大家有點用。

以上所述就是本文的全部內容了,希望能夠對大家學習lua語言有所幫助。

您可能感興趣的文章:
  • Lua學習筆記之數據類型
  • Lua學習筆記之運算符和表達式
  • Lua學習筆記之表和函數
  • Lua學習筆記之數據結構
  • Lua基礎教程之表(Table)學習筆記
  • Lua基礎教程之賦值語句、表達式、流程控制、函數學習筆記
  • Lua入門學習筆記
  • Lua字符串庫(string庫)學習筆記
  • Lua模塊與包學習筆記
  • Lua面向對象編程學習筆記
  • Lua中的閉包學習筆記
  • Lua中的元表和元方法學習筆記
  • Lua中的table學習筆記
  • Lua 學習筆記之C API 遍歷 Table實現代碼
  • Lua表達式和控制結構學習筆記

標簽:濰坊 宣城 儋州 金昌 臺灣 德宏 天門 天門

巨人網絡通訊聲明:本文標題《Lua學習筆記之類型與值》,本文關鍵詞  Lua,學習,筆記,之,類型,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua學習筆記之類型與值》相關的同類信息!
  • 本頁收集關于Lua學習筆記之類型與值的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品中文在线| 久久综合久久鬼色| 一本色道**综合亚洲精品蜜桃冫 | 日韩视频在线观看一区二区| 色哟哟精品一区| 日本道免费精品一区二区三区| 成人av网站在线观看免费| 成人高清免费在线播放| av福利精品导航| 欧美亚洲动漫精品| 欧美一区二区视频网站| 精品国产91亚洲一区二区三区婷婷| 欧美zozozo| 国产视频一区二区三区在线观看| 欧美激情一区在线观看| 亚洲男人天堂av网| 日韩中文字幕一区二区三区| 久久国产尿小便嘘嘘尿| 一片黄亚洲嫩模| 麻豆91免费观看| 国产成人免费视频网站| aaa亚洲精品| 在线综合亚洲欧美在线视频| 久久久高清一区二区三区| 成人欧美一区二区三区| 亚洲国产精品自拍| 国产精品综合一区二区| 欧美伊人久久大香线蕉综合69| 日韩一卡二卡三卡四卡| 国产精品久久久久久久第一福利| 午夜影院在线观看欧美| 狠狠色丁香婷综合久久| 色婷婷av一区二区三区gif| 欧美一区二区成人| 一区二区三区在线观看网站| 狠狠色丁香久久婷婷综合丁香| 91香蕉视频黄| 久久一二三国产| 午夜电影网一区| av电影天堂一区二区在线| 日韩欧美一级片| 亚洲视频一区二区在线| 激情图片小说一区| 欧美高清激情brazzers| 中文字幕在线观看不卡| 国产一区二区主播在线| 欧美人妇做爰xxxⅹ性高电影| 国产欧美一区二区三区在线看蜜臀| 亚洲高清在线视频| 91日韩一区二区三区| 亚洲国产精品精华液ab| 老司机一区二区| 欧美一区日韩一区| 亚洲成av人片在www色猫咪| a亚洲天堂av| 国产日产精品一区| 国产高清成人在线| 久久色.com| 国内一区二区视频| 久久久蜜臀国产一区二区| 日本不卡免费在线视频| 欧美另类久久久品| 天堂精品中文字幕在线| 欧美精选一区二区| 亚洲成人动漫精品| 欧美高清视频www夜色资源网| 夜夜夜精品看看| 日本久久精品电影| 亚洲一区二区三区四区五区中文| 色综合久久综合网| 亚洲影院久久精品| 欧美在线播放高清精品| 亚洲超碰97人人做人人爱| 欧美日韩一区中文字幕| 亚洲第一福利视频在线| 欧美日韩久久一区| 蜜臀av性久久久久蜜臀aⅴ| 欧美www视频| 国产一区美女在线| 国产精品乱人伦中文| 91蝌蚪porny成人天涯| 亚洲综合成人网| 91精品国产综合久久精品| 久久精品久久综合| 久久精品综合网| 成人av影院在线| 亚洲成人你懂的| 日韩精品一区二区三区swag | 欧美日韩不卡在线| 免费一级片91| 国产日韩高清在线| 色综合久久综合网欧美综合网 | 成人免费高清视频| 亚洲精品乱码久久久久久久久| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲成人综合在线| 久久久亚洲欧洲日产国码αv| 99国产精品久久| 日日嗨av一区二区三区四区| 久久女同精品一区二区| www.av亚洲| 日本中文字幕不卡| 中文字幕不卡三区| 欧美高清视频www夜色资源网| 久88久久88久久久| 亚洲精品成人在线| 精品成人免费观看| 欧美色图免费看| 成人h版在线观看| 美国十次了思思久久精品导航| 国产精品午夜春色av| 日韩欧美在线1卡| 欧美中文字幕久久 | 亚洲精品视频在线看| 欧美r级在线观看| 91视频免费观看| 久久成人麻豆午夜电影| 一区二区三区中文字幕| 久久久亚洲精华液精华液精华液| 在线视频你懂得一区二区三区| 国产成人综合自拍| 日本三级亚洲精品| 亚洲伊人伊色伊影伊综合网| 国产精品嫩草影院com| 精品国产乱码久久久久久久久 | 一本一道波多野结衣一区二区 | 色狠狠综合天天综合综合| 国产高清不卡一区二区| 免费成人小视频| 亚洲电影在线免费观看| 亚洲女同一区二区| 日韩一区欧美小说| 国产精品美女久久福利网站| 国产午夜精品在线观看| 欧美成人一区二区三区在线观看 | 亚洲欧洲性图库| 国产视频一区二区三区在线观看| 欧美xxx久久| 精品99一区二区三区| 精品福利一二区| 精品国产一区二区三区四区四| 91精品综合久久久久久| 欧美一区二区在线观看| 欧美一级爆毛片| 欧美片在线播放| 欧美一区二区三区小说| 日韩欧美三级在线| www一区二区| 亚洲国产精品99久久久久久久久| 久久久久97国产精华液好用吗| 久久精品亚洲国产奇米99| 国产性做久久久久久| 亚洲欧洲日韩女同| 亚洲一区二区影院| 首页欧美精品中文字幕| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美另类变人与禽xxxxx| 欧美福利一区二区| 精品卡一卡二卡三卡四在线| 久久只精品国产| 中文字幕不卡在线播放| 亚洲精品伦理在线| 日本不卡高清视频| 国产在线看一区| 99精品欧美一区二区三区综合在线| 日本高清成人免费播放| 欧美亚洲综合色| 日韩视频一区二区| 国产精品美女久久久久久久久久久| 亚洲人成7777| 毛片av一区二区| 91一区二区三区在线播放| 欧美人狂配大交3d怪物一区| 精品成人a区在线观看| 一区二区三区在线观看动漫| 免费在线观看精品| 波多野结衣中文字幕一区二区三区 | 91精品国产乱码| 欧美国产精品中文字幕| 亚洲成人手机在线| 国产精品一区二区久久精品爱涩| 色欧美88888久久久久久影院| 欧美成人官网二区| 亚洲一区二区三区四区的| 精久久久久久久久久久| 91色.com| 国产清纯白嫩初高生在线观看91 | 99久久精品国产毛片| 欧美军同video69gay| 中文字幕精品一区| 麻豆成人久久精品二区三区小说| av成人免费在线| 欧美哺乳videos| 午夜一区二区三区视频| 成人h动漫精品| 精品国产自在久精品国产| 香蕉加勒比综合久久| 91亚洲永久精品| 国产精品你懂的在线欣赏| 蜜桃视频第一区免费观看|