fungsi Lua
Di Lua, fungsi adalah metode utama laporan abstrak dan ekspresi. Keduanya dapat digunakan untuk menangani beberapa pekerjaan khusus, juga dapat digunakan untuk menghitung beberapa nilai.
Lua menyediakan banyak fungsi built-in, Anda dapat dengan mudah menghubungi mereka, seperti cetak () fungsi bisa parameter yang dikirimkan mencetak pada konsol dalam program ini.
Fungsi Lua Ada dua tujuan utama:
- 1. menyelesaikan tugas yang diberikan, dalam hal ini digunakan sebagai pernyataan fungsi panggilan;
- 2. Hitung dan mengembalikan nilai, dalam hal fungsi tersebut digunakan sebagai ekspresi tugas.
definisi fungsi
Lua fungsi bahasa pemrograman didefinisikan dalam format berikut:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end
resolusi:
- optional_function_scope : Parameter ini adalah fungsi opsional untuk mengembangkan fungsi global atau fungsi lokal, akhir parameter tidak diatur untuk fungsi global, jika Anda perlu untuk mengatur fungsi fungsi parsial perlu untuk menggunakan lokal kata kunci.
- function_name: Tentukan nama fungsi.
- argument1, argument2, argument3 ..., argumenN : Fungsi parameter, beberapa parameter dipisahkan dengan koma, juga dapat berfungsi tanpa parameter.
- function_body: Tubuh fungsi, pernyataan kode fungsi blok perlu dilakukan.
- result_params_comma_separated: Fungsi nilai kembali, fungsi bahasa Lua dapat kembali beberapa nilai, masing-masing dipisahkan dengan koma.
contoh
Contoh berikut mendefinisikan fungsimax (), parameter num1, num2, digunakan untuk membandingkan ukuran dua nilai dan mengembalikan 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))
Kode di atas dijalankan sebagai akibat dari:
两值比较最大值为 10 两值比较最大值为 6
Lua kita dapat berfungsi sebagai parameter dilewatkan ke fungsi, contoh-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)
Kode di atas dijalankan sebagai akibat dari:
这是打印函数 - ## 10 ## 这是打印函数 - ## 7 ##
Beberapa kembali nilai-nilai
Fungsi Lua dapat kembali beberapa nilai hasil, seperti string.find, yang mengembalikan string matching "awal dan akhir subscript yang" (jika tidak ada kecocokan string yang kembali nil).
> s, e = string.find("www.w3big.com", "w3big") > print(s, e) 5 10
fungsi Lua, setelah kembali layak untuk kembali daftar daftar dapat kembali beberapa nilai, 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}))
Kode di atas dijalankan sebagai akibat dari:
23 3
parameter variabel
Fungsi Lua dapat menerima sejumlah variabel argumen, dan bahasa C mirip dengan menggunakan tiga titik daftar fungsi parameter (...) menunjukkan fungsi dengan parameter variabel.
parameter fungsi Lua di meja disebut arg, #arg mewakili jumlah parameter yang dikirimkan.
Sebagai contoh, kita menghitung rata-rata dari beberapa nomor:
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))
Kode di atas dijalankan sebagai akibat dari:
总共传入 6 个数 平均值为 5.5