Latest web development tutorials

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