lua 基礎 2 型別和值

linux_ios發表於2013-09-03

-- 型別 和 值
--[[ 8中型別 滾動類nil、boolean、 number、string、userdata、
function、thread 和 table。]]

print (type("Hello World"))
print (type(10.4*3))
print (type(print))
print (type(print))
print (type(true))
print (type(nil))
print (type(type(x)))

--變數沒有預定義的型別,每一個變數都可能包含任一種型別的值。
print ("++++++")
print (type(a))
a = 10
print (type(a))
a = "a string "
print (type(a))
a = print -- a 是變數
a(type(a)) --print(type(print))

--2.1 Nil 一個全域性變數沒有被賦值以前預設值為 nil;
--給全域性變數負 nil 可以刪除該變數。

--2.2 Booleans false ture lua只有false和nil是假的 所以lua 0和空都是真的

--2.3 Numbers 不多說

--2.4 Strings 指字元的序列 lua中字串是不可以修改的 可以建立新的變數存放
print ("=========")
a= "one string"
b = string.gsub(a,"one","another")
print (a)
print (b)


-- lua 自動進行記憶體分配和釋放,
-- 可以使用單引號或者雙引號表示字串
a= "a line"
b= 'another line'

--Lua 中的轉義序列
--[[

\a bell
\b back space
\f form feed
\n newline
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\" double quote
\' single quote
-- 後退 -- 換頁 -- 換行 -- 回車 -- 製表
-- "\" -- 雙引號 -- 單引號
\[ left square bracket -- 左中括號
\] right square bracket -- 右中括號
]]
print('==========')

print ("one line\nnext line\n\"in quotes\", 'in quotes'")
--[[
輸出

one line
next line
"in quotes", 'in quotes'
]]

print ('a backslash inside quotes: \'\\\'') --a backslash inside quotes: '\'
print("a simpler way: '\\'")--a simpler way: '\'


-- 在字串中使用\ddd(ddd 為三位十進位制數字)方式表示字母。


--使用[[...]]表示字串 可以包含多行

page = [[
<HTML>
<HEAD>
<TITLE>An HTML Page</TITLE>
</HEAD>
<BODY>
Lua
[[a text between double brackets] ]
</BODY>
</HTML>
]]

io.write(page)

-- string 轉化
print ("10"+1)--11
print ("10+1")--10+1
--print ("-5.3e - 10" * "2") ---1.06e-09
--print ("Hello" +1) --錯


-- 數字轉成 string
print (10 .. 20) --1020
-- ..在 Lua 中是字串連線符,當在一個數字後面寫..時,必須加上空格以防止被解釋 錯。
--[[
line = io.read()
n = tonumber(line)
if n == nil then
error (line .. "is not a valid number")
else
print (n*2)
end
]]

-- tostring() 將數字轉成字串
print ( tostring(10) == "10")
print (10 .. "" == "10")


-- 2.5 Functions
--[[

函式是第一類值(和其他變數相同),意味著函式可以儲存在變數中,
可以作為函式 的引數,也可以作為函式的返回值。


Lua 可以呼叫 lua 或者 C 實現的函式,Lua 所有標準庫都是用 C 實現的。

]]


--2.6 Userdata and Threads
--[[
userdata 可以將 C 資料存放在 Lua 變數中,userdata 在 Lua 中除了賦值和相等比較外 沒有預定義的操作。
userdata 用來描述應用程式或者使用 C 實現的庫建立的新型別。

]]


--[[

Lua 中的表示式包括數字常量、字串常量、變數、一元和二元運算子、
函式呼叫。還可以是非傳統的函式定義和表構造。

]]

 

--[[
上面例子的輸出

 

string
number
function
function
boolean
nil
string
++++++
nil
number
string
function
=========
one string
another string
==========
one line
next line
"in quotes", 'in quotes'
a backslash inside quotes: '\'
a simpler way: '\'
<HTML>
<HEAD>
<TITLE>An HTML Page</TITLE>
</HEAD>
<BODY>
Lua
[[a text between double brackets] ]
</BODY>
</HTML>
11
10+1
1020
true
true


]]

 

相關文章