国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

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

2024-07-21 23:04:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

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

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

 

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

 

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

  •     可選函數(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ù)是可選的;也就是說(shuō),方法可能沒(méi)有參數(shù)。
  •     函數(shù)體:方法主體包含了定義方法做什么的語(yǔ)句的集合。
  •     返回:在Lua中可以通過(guò)下面的逗號(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ù)來(lái)執(zhí)行定義的任務(wù)。

當(dāng)程序調(diào)用一個(gè)函數(shù),程序的控制轉(zhuǎn)移到被調(diào)用的函數(shù)。被調(diào)用函數(shù)進(jìn)行定義的任務(wù)和在執(zhí)行它的return語(yǔ)句或當(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è)簡(jiǎn)單的例子,用來(lái)分配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ù)。我們可以通過(guò)看一個(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
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武川县| 祁门县| 富裕县| 革吉县| 洛阳市| 波密县| 青海省| 文成县| 昆山市| 石城县| 安塞县| 金塔县| 肥乡县| 德江县| 汉源县| 桑植县| 新干县| 凯里市| 博客| 新郑市| 定日县| 庆云县| 东丰县| 秀山| 来安县| 铁岭县| 承德县| 兰坪| 报价| 陆良县| 郑州市| 阜南县| 宁城县| 普安县| 龙川县| 呼玛县| 泰顺县| 福泉市| 商南县| 门源| 佛教|