好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > Lua中的函數(shù)淺析

Lua中的函數(shù)淺析

熱門標(biāo)簽:電腦外呼系統(tǒng)輻射大嗎 百度地圖標(biāo)注位置網(wǎng)站 武漢百應(yīng)人工智能電銷機(jī)器人 上海企業(yè)外呼系統(tǒng)排名 如何利用高德地圖標(biāo)注家 智能語(yǔ)音電銷的機(jī)器人 400手機(jī)電話免費(fèi)辦理 揚(yáng)州電銷外呼系統(tǒng)軟件 開通400電話申請(qǐng)流程

一、函數(shù)

在lua中函數(shù)的調(diào)用方式和C語(yǔ)言基本相同。 如print(“hello world”), z=add(x+y)。唯一的差別是,如果函數(shù)只有一個(gè)參數(shù),并且該參數(shù)是字符串或者table構(gòu)造器,那么圓括號(hào)可以省略,如print “hello world”, f{x=10,y=10}。

我對(duì)于table構(gòu)造器的理解就是它本身就是一個(gè)構(gòu)造函數(shù)或者是特殊化的結(jié)構(gòu)體。

lua為面向?qū)ο笠蔡峁┝艘粋€(gè)新的特殊語(yǔ)法--冒號(hào)操作符。表達(dá)式o.foo(o,x) 的另一種寫法是o:foo(x)。

復(fù)制代碼 代碼如下:

   function add(a)
      local sum=0
      for i,v in ipairs(a) do
         sum=sum+v
      end
      return sum
   end

在以上聲明中,包含了函數(shù)名(add),參數(shù)列表(a),以及函數(shù)體。需要說明的是,Lua中實(shí)參和形參的數(shù)量可以不一致,一旦出現(xiàn)這種情況,Lua的處理規(guī)則等同于多重賦值,即實(shí)參多于形參,多出的部分被忽略,如果相反,沒有被初始化的形參的缺省值為nil。

1、多重返回值

復(fù)制代碼 代碼如下:

function maximum(a)
   local pos=1
   local maxx=a[1]
   for i, v in ipairs(a) do
       if v>maxx then
       pos,maxx=i,v
       end
   end
   return pos,maxx
end

print(maximum( {1,5,2,7,3,6} ))
--輸出 4 7

2、變長(zhǎng)參數(shù)

lua中同一個(gè)函數(shù)可以接受不同數(shù)量的參數(shù)(參數(shù)項(xiàng)為 ... )

復(fù)制代碼 代碼如下:

function add(...)
  sum=0
  for i,v in pairs{...} do
     sum=sum+v
  end
  return sum
end


function mul(a,b,...)
  sum=a*b
  for i,v in pairs{...} do
     sum=sum*v
  end
  return sum
end

print(add(1,2,3,4,5))
print(add(1,2,3))
print(mul(1,2,3,4,5))

3、具名實(shí)參

lua中允許將多個(gè)參數(shù)合并在一個(gè)table中,當(dāng)做一個(gè)參數(shù)傳入

復(fù)制代碼 代碼如下:

function foo(person)
  name=person.name
  age=person.age
  sex=person.sex
  ...
end

二、深入函數(shù)

在lua中函數(shù)和其他所有值一樣是匿名的,即它們沒有名稱,我們?cè)诓僮鞯臅r(shí)候都在在操作該函數(shù)的變量。


復(fù)制代碼 代碼如下:

a = { p = print }
a.p("Hello World")
b = print
b("Hello World")

函數(shù)聲明的方式:
復(fù)制代碼 代碼如下:

function foo(x) return 2*x  end

foo=function(x) return 2*x end


下面展示了匿名函數(shù)的方便性
復(fù)制代碼 代碼如下:

table.sort(tab,function(a,b) return a.idb.id end )

1、closure函數(shù)(閉包函數(shù))

如果一個(gè)函數(shù)寫入另一個(gè)函數(shù)內(nèi),那么這個(gè)處于內(nèi)部的函數(shù)可以訪問外部函數(shù)的局部變量。

復(fù)制代碼 代碼如下:

function newCounter()
    local i = 0   --"非局部變量",該變量可以被內(nèi)部的匿名函數(shù)訪問并操作
                   --其值可以用于下一次函數(shù)訪問時(shí)計(jì)算
    return function() --匿名函數(shù)
        i = i + 1
        return i
    end
end
c1 = newCounter()
c2=  newCounter()
print(c1())
print(c2()) --不同閉包的“非局部變量“是相互獨(dú)立的
print(c1())
print(c2())
--輸出結(jié)果為:
--1
--1
--2
--2

為了加深理解,再來看一個(gè)例子

復(fù)制代碼 代碼如下:

function power(x)
  return function(y) --該參數(shù)為閉包變量傳入的參數(shù)
  return y^x
  end
end

power2=power(2) --power2,power3為閉包變量
power3=power(3)
print(power2(4))
print(power3(5))
--輸出
--16
--125

2、非全局函數(shù)

復(fù)制代碼 代碼如下:

Lib={}
Lib.add=function(x,y) return x+y end
Lib.sub=function(x,y) return x-y end
function Lib.add(x,y) return x+y end
function Lib.sub(x,y) return x-y end

Lib={
      add=function(x,y) return x+y end
      sub=function(x,y) return x-y end
}

do
   local f=function(x,y) return x+y end
   ...
   f(4,5)
end

您可能感興趣的文章:
  • Lua中調(diào)用函數(shù)使用點(diǎn)號(hào)和冒號(hào)的區(qū)別
  • Lua中的模塊與module函數(shù)詳解
  • Lua中的閉合函數(shù)、非全局函數(shù)與函數(shù)的尾調(diào)用詳解

標(biāo)簽:張掖 嘉峪關(guān) 江西 黑龍江 武漢 延邊 新余 宜賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中的函數(shù)淺析》,本文關(guān)鍵詞  Lua,中的,函數(shù),淺析,Lua,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中的函數(shù)淺析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua中的函數(shù)淺析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 成年人视频免费在线播放| 国产精品内射久久久久欢欢| freehd麻豆| 佸伦短篇小说| 酒吧大姐大| 成人无码区免费A片在线软件| 野外妓女B???BXXX| 免费无码又爽又刺激高潮表情包| 国产精品久久久久久久免费大片 | 宝贝夹紧我| 96精品国产高清在线看入口| 日韩在线天堂| 日本午夜大片a在线观看| 4男一女玩5p爽文| 国产福利不卡视频在免费播放| 国产亚洲精品综合在线网址| 亚洲偷偷拍一区二区三区四 | 粗硬大迪克hd| 老熟女乱婬片在线播放| 日产mv和欧美mv的区别| 国产风流寡妇伦理| 国产自产精品| 成人做爰免费视频免费看| 少妇精油按摩高潮| 国产精品 视频一区 二区三区 | 中国幻女free性zozo交体内谢| 美女扒开屁股让男人桶视频网站 | 国产在线黄色| 在线免费观看成年人视频| 色小说综合| 人妻婬乱1一17赵敏| 18性XXXXX性猛交| 国产丶欧美丶日韩丶不卡影视| 久久精品国产精品草功能特色| 国产zzjjzzjj视频全免费| jlzzz18免费观看老师| 紧缚拘束口工漫画acg中文| 女攻男受强制play漫画| 涩涩高清无乱码在线观看| 午夜被窝福利在线观看| 学校园高肉双腿打开h|