最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua中的函數(shù)相關(guān)知識(shí)點(diǎn)整理匯總

 更新時(shí)間:2015年05月28日 12:05:48   投稿:goldensun  
這篇文章主要介紹了Lua中的函數(shù)相關(guān)知識(shí)點(diǎn)整理匯總,包括函數(shù)的參數(shù)傳遞和定義函數(shù)等基本知識(shí),需要的朋友可以參考下

 函數(shù)是一組一起執(zhí)行任務(wù)的語句??梢园汛a放到獨(dú)立的函數(shù)中。怎么劃分代碼功能之間的不同,但在邏輯上劃分通常是讓每個(gè)函數(shù)執(zhí)行特定的任務(wù)。

Lua語言提供了程序可以調(diào)用大量的內(nèi)置方法。例如,方法print()打印作為輸入傳參數(shù)在控制臺(tái)中。

函數(shù)是已知的各種名稱,如方法或子程序或程序等。
定義一個(gè)函數(shù)

在Lua編程語言中的方法的定義一般形式如下:

復(fù)制代碼 代碼如下:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
function_body
return result_params_comma_separated
end

在 Lua 編程語言的方法定義包括方法頭和方法體。這里是方法的所有部件

  •     可選函數(shù)適用范圍:可以使用關(guān)鍵字本地范圍的限制功能或忽略的范圍部分,這將使它成為一個(gè)全局函數(shù)。
  •     函數(shù)名稱:這是函數(shù)的實(shí)際名稱。函數(shù)名和參數(shù)列表一起構(gòu)成了函數(shù)簽名。
  •     參數(shù):一個(gè)參數(shù)是像占位符。當(dāng)調(diào)用一個(gè)函數(shù),將值傳遞給參數(shù)。這個(gè)值被稱為實(shí)際參數(shù)或參數(shù)。參數(shù)列表是指類型,順序和數(shù)量的方法的參數(shù)。參數(shù)是可選的;也就是說,方法可能沒有參數(shù)。
  •     函數(shù)體:方法主體包含了定義方法做什么的語句的集合。
  •     返回:在Lua中可以通過下面的逗號(hào)分隔的返回值,return關(guān)鍵字返回多個(gè)值。

例子:

下面是一個(gè)函數(shù)的源代碼調(diào)用max()。這個(gè)函數(shù)有兩個(gè)參數(shù)num1與num2并返回兩者之間的最大值:

復(fù)制代碼 代碼如下:
--[[ function returning the max between two numbers --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result;
end

函數(shù)參數(shù):

如果一個(gè)函數(shù)使用參數(shù),它必須聲明接受的參數(shù)值變量。這些變量被函數(shù)的形式參數(shù)調(diào)用。

正式的參數(shù)表現(xiàn)得就像在函數(shù)內(nèi)部其他本地變量和在進(jìn)入函數(shù)創(chuàng)建并在退出時(shí)銷毀。
調(diào)用函數(shù):

當(dāng)創(chuàng)建一個(gè)Lua函數(shù),給什么樣的功能,必須做一個(gè)定義。要使用一個(gè)方法,將不得不調(diào)用該函數(shù)來執(zhí)行定義的任務(wù)。

當(dāng)程序調(diào)用一個(gè)函數(shù),程序的控制轉(zhuǎn)移到被調(diào)用的函數(shù)。被調(diào)用函數(shù)進(jìn)行定義的任務(wù)和在執(zhí)行它的return語句或當(dāng)其功能的終端到達(dá)時(shí),程序控制返回到主程序。

而調(diào)用只是需要傳遞所需的參數(shù)以及方法名的方法,如果方法返回一個(gè)值,那么你可以存儲(chǔ)返回的值。例如:

復(fù)制代碼 代碼如下:
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result;
end

-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))

當(dāng)我們運(yùn)行上面的代碼中,將得到下面的輸出。

復(fù)制代碼 代碼如下:
The maximum of the two numbers is  10
The maximum of the two numbers is  6

分配和傳遞函數(shù)

在Lua中,我們可以指定函數(shù)的變量,也可以將它們作為另一個(gè)函數(shù)的參數(shù)。下面是一個(gè)簡單的例子,用來分配Lua傳遞一個(gè)函數(shù)作為參數(shù)。

復(fù)制代碼 代碼如下:
myprint = function(param)
   print("This is my print function -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   functionPrint(result)
end
myprint(10)
add(2,5,myprint)

當(dāng)我們運(yùn)行上面的代碼中,將得到下面的輸出。

復(fù)制代碼 代碼如下:
This is my print function -   ## 10 ##
This is my print function -   ## 7 ##

函數(shù)與變量參數(shù)

可以在Lua中創(chuàng)建一個(gè)具有可變參數(shù)的函數(shù)......作為它的參數(shù)。我們可以通過看一個(gè)例子,利用可變參數(shù)該函數(shù)將返回平均值。

復(fù)制代碼 代碼如下:
function average(...)
   result = 0
   local arg={...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   return result/#arg
end

print("The average is",average(10,5,3,4,5,6))

當(dāng)我們運(yùn)行上面的代碼中,將得到下面的輸出。

復(fù)制代碼 代碼如下:
The average is 5.5

相關(guān)文章

  • Lua中的迭代器和泛型for學(xué)習(xí)總結(jié)

    Lua中的迭代器和泛型for學(xué)習(xí)總結(jié)

    這篇文章主要介紹了Lua中的迭代器和泛型for學(xué)習(xí)總結(jié),本文講解了迭代器和泛型for的基礎(chǔ)知識(shí)、泛型for的語義、無狀態(tài)的迭代器等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua一維數(shù)組與多維數(shù)組的使用示例

    Lua一維數(shù)組與多維數(shù)組的使用示例

    今天小編就為大家分享一篇關(guān)于Lua一維數(shù)組與多維數(shù)組的使用示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • lua實(shí)現(xiàn)的2048小游戲

    lua實(shí)現(xiàn)的2048小游戲

    之前給大家分享了好幾個(gè)語言版本的2048了,今天再給大家分享一個(gè)lua腳本實(shí)現(xiàn)的2048小游戲,小伙伴們參考下吧。
    2015-03-03
  • Lua流程控制語句if else的使用示例

    Lua流程控制語句if else的使用示例

    今天小編就為大家分享一篇關(guān)于Lua流程控制語句if else的使用示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 把Lua函數(shù)傳遞到C/C++中實(shí)例

    把Lua函數(shù)傳遞到C/C++中實(shí)例

    這篇文章主要介紹了把Lua函數(shù)傳遞到C/C++中實(shí)例,本文先是分析了需求,然后給出解決方法,需要的朋友可以參考下
    2014-11-11
  • Lua游戲開發(fā)教程之時(shí)區(qū)問題詳解

    Lua游戲開發(fā)教程之時(shí)區(qū)問題詳解

    時(shí)間顯示問題說白了就是時(shí)差問題,這篇文章主要給大家介紹了關(guān)于Lua游戲開發(fā)教程之時(shí)區(qū)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Lua中使用table.concat連接大量字符串實(shí)例

    Lua中使用table.concat連接大量字符串實(shí)例

    這篇文章主要介紹了Lua中使用table.concat連接大量字符串實(shí)例,本文是Lua處理大量字符串的一個(gè)測試文章,測試了2種方法處理大量字符串的消耗時(shí)間,需要的朋友可以參考下
    2014-09-09
  • Lua中遍歷數(shù)組和table的4種方法

    Lua中遍歷數(shù)組和table的4種方法

    這篇文章主要介紹了Lua中遍歷數(shù)組和table的4種方法,本文講解了使用for遍歷、迭代器的方式遍歷等方法,同時(shí)提供一個(gè)復(fù)雜table的的遍歷方法,需要的朋友可以參考下
    2015-04-04
  • Lua中的邏輯運(yùn)算符使用詳解

    Lua中的邏輯運(yùn)算符使用詳解

    這篇文章主要介紹了Lua中的邏輯運(yùn)算符使用詳解,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 使用lua實(shí)現(xiàn)split字符串分隔

    使用lua實(shí)現(xiàn)split字符串分隔

    Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護(hù)。
    2014-11-11

最新評論

固始县| 孟村| 洪江市| 上蔡县| 密云县| 梓潼县| 清水河县| 北流市| 西贡区| 浦东新区| 佳木斯市| 揭东县| 富民县| 开封县| 梓潼县| 靖江市| 道真| 凤庆县| 松滋市| 永靖县| 正宁县| 轮台县| 周至县| 南溪县| 铅山县| 米脂县| 荔浦县| 临朐县| 扎囊县| 长沙县| 锡林郭勒盟| 南通市| 郁南县| 丽江市| 藁城市| 白玉县| 上栗县| 宁乡县| 汝城县| 涞水县| 淅川县|