函數(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ǔ)言中的方法的定義一般形式如下:
在 Lua 編程語(yǔ)言的方法定義包括方法頭和方法體。這里是方法的所有部件
例子:
下面是一個(gè)函數(shù)的源代碼調(diào)用max()。這個(gè)函數(shù)有兩個(gè)參數(shù)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ǔ)返回的值。例如:
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)行上面的代碼中,將得到下面的輸出。
分配和傳遞函數(shù)
在Lua中,我們可以指定函數(shù)的變量,也可以將它們作為另一個(gè)函數(shù)的參數(shù)。下面是一個(gè)簡(jiǎn)單的例子,用來(lái)分配Lua傳遞一個(gè)函數(shù)作為參數(shù)。
function add(num1,num2,functionPrint)
result = num1 + num2
functionPrint(result)
end
myprint(10)
add(2,5,myprint)
當(dāng)我們運(yùn)行上面的代碼中,將得到下面的輸出。
函數(shù)與變量參數(shù)
可以在Lua中創(chuàng)建一個(gè)具有可變參數(shù)的函數(shù)......作為它的參數(shù)。我們可以通過(guò)看一個(gè)例子,利用可變參數(shù)該函數(shù)將返回平均值。
print("The average is",average(10,5,3,4,5,6))
當(dāng)我們運(yùn)行上面的代碼中,將得到下面的輸出。
新聞熱點(diǎn)
疑難解答
圖片精選