Lua berfungsi
Dalam Lua, fungsi ialah cara utama untuk abstrak pernyataan dan ungkapan. Ia boleh digunakan untuk mengendalikan beberapa tugas khas dan untuk mengira beberapa nilai.
Lua menyediakan banyak fungsi terbina dalam yang boleh anda panggil dengan mudah dalam program anda Contohnya, fungsi print() boleh mencetak parameter yang diluluskan pada konsol.
Fungsi Lua mempunyai dua kegunaan utama:
1. Selesaikan tugas yang ditentukan, dalam hal ini fungsi digunakan sebagai pernyataan panggilan;
2. Kira dan pulangkan nilai Dalam kes ini, fungsi digunakan sebagai ungkapan pernyataan tugasan. - Definisi fungsi
Format definisi fungsi bahasa pengaturcaraan Lua adalah seperti berikut:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end
Penghuraian:
- opsional_function_scope
- setempat .
- function_name:
- argument1, argument2, argument3..., argumentn:
- function_body:
- result_params_comma_separated:
- Contoh
Contoh berikut mentakrifkan fungsi
max(), dengan parameter num1, num2, yang digunakan untuk membandingkan saiz dua nilai dan kembalikan nilai maksimum: --[[ 函数返回两个值的最大值 --]]
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
-- 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))
Hasil pelaksanaan kod di atas ialah:
两值比较最大值为 10 两值比较最大值为 6
Dalam Lua, kita boleh menghantar fungsi sebagai parameter kepada fungsi, seperti yang ditunjukkan dalam contoh berikut :
myprint = function(param) print("这是打印函数 - ##",param,"##") end function add(num1,num2,functionPrint) result = num1 + num2 -- 调用传递的函数参数 functionPrint(result) end myprint(10) -- myprint 函数作为参数传递 add(2,5,myprint)
Hasil pelaksanaan kod di atas ialah:
这是打印函数 - ## 10 ## 这是打印函数 - ## 7 ##Nilai pulangan berbilang
Fungsi Lua boleh mengembalikan berbilang nilai hasil, seperti string.find , yang mengembalikan rentetan yang sepadan "subskrip mula dan tamat" (jika tiada rentetan yang sepadan, kembalikan sifar).
> s, e = string.find("www.php.cn", "php") > print(s, e) 5 10
Dalam fungsi Lua, berbilang nilai boleh dikembalikan dengan menyenaraikan senarai nilai yang akan dikembalikan selepas pemulangan, seperti:
function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end print(maximum({8,10,23,12,5}))
Hasil pelaksanaan kod di atas ialah:
23 3Parameter pembolehubah
Fungsi Lua boleh menerima nombor pembolehubah parameter Sama seperti bahasa C, tiga titik (...) digunakan dalam parameter fungsi senarai untuk menunjukkan bahawa fungsi mempunyai parameter berubah-ubah.
Lua meletakkan parameter fungsi dalam jadual yang dipanggil arg
#argmewakili bilangan parameter yang dihantar. Sebagai contoh, kami mengira purata beberapa nombor:
function average(...) result = 0 local arg={...} for i,v in ipairs(arg) do result = result + v end print("总共传入 " .. #arg .. " 个数") return result/#arg end print("平均值为",average(10,5,3,4,5,6))
Hasil pelaksanaan kod di atas ialah:
总共传入 6 个数 平均值为 5.5