最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua函數(shù)用法研究

 更新時間:2015年07月09日 10:13:12   投稿:junjie  
這篇文章主要介紹了Lua函數(shù)用法研究,本文講解了函數(shù)、變量的用法、返回多個結果值和可變參數(shù)等特性的示例,需要的朋友可以參考下

Lua 基本語法快速入門 中有涉及到函數(shù)的用法,但只是普通的應用,并沒有深成次的研究一下,介于函數(shù)用的還是比較多的就專門做個專題研究一下~ 
 
一、函數(shù)、變量的用法

函數(shù)的定義用關鍵字function 。然后加函數(shù)名和變量。注意后面沒有do。最后以end結束。

在函數(shù)中的變量默認是全局變量,但通常情況下函數(shù)中的變量都是在函數(shù)中有效的。所以要在聲明的時候加上"local” 標明只在局部有效。
二、返回多個結果值

在Lua中的函數(shù)可以返回多個返回值。這與C等語言有很大的不同。因為從根本上講Lua支持多賦值。

我猜測在內部運行時,多個返回值被封裝到了一個table中。然后在賦值時再按順序取出。
看這個示例:             

function max(a) 
 local mi = 1 
 local m = a[mi] 
 for i,val in ipairs(a) do  --其中i為順序位置,val為相應的值 
  print("i= "..i.."val="..val) 
  if val >m then 
   mi = i 
   m = val 
  end 
 end 
 return m,mi 
end 
 
print(max({8,10,23,12,5})) 

   

這個函數(shù)的作用是返回一個數(shù)列中最大的值和下標。

在實際應用的過程中,在C中調用lua_pcall(L,0,2,0) 即可接受這兩個返回值入棧,然后通過 lua_tonumber(L,-1) 和 lua_tonumber(L,-2)即可
三、可變參數(shù)

Lua 函數(shù)可以接受可變數(shù)目的參數(shù),和 C 語言類似在函數(shù)參數(shù)列表中使用三點(...)表示函數(shù)有可變的參數(shù)。

Lua 將函數(shù)的參數(shù)放在一個叫 arg 的表中,除了參數(shù)以外,arg表中還有一個域 n 表示參數(shù)的個數(shù)。

例如:
 

function myprint(...) 
 local printResult = ""  --如果不顯式聲明,程序會自動檢查全局的變量,會找不到出錯 
 print(arg.n) 
 for i,v in ipairs(arg) do 
  printResult = printResult..tostring(v)..'\t' 
 end 
 printResult=printResult..'\n' 
 return printResult 
end 
 
print(myprint(2,4,6,'2es')) 

相關文章

  • Lua中的變量和流控制入門學習

    Lua中的變量和流控制入門學習

    這篇文章主要介紹了Lua中的變量和流控制入門學習,其中--兩個橫線開始單行的注釋,--[[加上兩個[和]表示多行的注釋--]],需要的朋友可以參考下
    2015-07-07
  • Lua協(xié)同程序函數(shù)coroutine使用實例

    Lua協(xié)同程序函數(shù)coroutine使用實例

    這篇文章主要介紹了Lua協(xié)同程序函數(shù)coroutine使用實例,協(xié)程是協(xié)同程序的簡稱,顧名思義,就是協(xié)同工作的程序,需要的朋友可以參考下
    2014-09-09
  • 編寫高性能Lua代碼的方法

    編寫高性能Lua代碼的方法

    這篇文章主要介紹了編寫高性能Lua代碼的方法,本文是基于Lua語言的創(chuàng)造者Roberto Ierusalimschy的一篇文章翻譯改寫而來,需要的朋友可以參考下
    2014-10-10
  • Lua中的持久化和序列化詳解

    Lua中的持久化和序列化詳解

    這篇文章主要介紹了Lua中的持久化和序列化詳解,本文詳細講解了Lua中的持久化和序列化,并給出代碼實例,需要的朋友可以參考下
    2014-09-09
  • Lua中獲取table長度問題探討

    Lua中獲取table長度問題探討

    這篇文章主要介紹了Lua中獲取table長度問題探討,本文非常深入的研究了Lua中table長度的獲取問題,分析了各種各樣的情況,需要的朋友可以參考下
    2015-04-04
  • Lua中計算、執(zhí)行字符串中Lua代碼的方法

    Lua中計算、執(zhí)行字符串中Lua代碼的方法

    這篇文章主要介紹了Lua中計算、執(zhí)行字符串中Lua代碼的方法,類似JavaScript中eval函數(shù)的功能,在Lua中也可以實現(xiàn),需要的朋友可以參考下
    2015-05-05
  • Lua中table的遍歷詳解

    Lua中table的遍歷詳解

    這篇文章主要介紹了Lua中table的遍歷詳解,本文講解了4種遍歷方法,并詳細分析了這4種方法的特點、使用環(huán)境、相關知識等,需要的朋友可以參考下
    2015-04-04
  • Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹

    Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹

    這篇文章主要介紹了Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹,本文分別給出了這幾個函數(shù)的使用實例,需要的朋友可以參考下
    2015-04-04
  • Lua中的變量類型與語句學習總結

    Lua中的變量類型與語句學習總結

    這篇文章主要介紹了Lua中的變量類型與語句學習總結,總結了Lua入門過程中的一些基礎知識,需要的朋友可以參考下
    2016-06-06
  • Ruby元編程技術詳解(Ruby Metaprogramming techniques)

    Ruby元編程技術詳解(Ruby Metaprogramming techniques)

    這篇文章主要介紹了Ruby元編程技術詳解(Ruby Metaprogramming techniques),本文講解了11個關于元編程的技術和技巧,需要的朋友可以參考下
    2015-04-04

最新評論

长宁县| 桃园县| 玉树县| 弥勒县| 大方县| 遂溪县| 陇西县| 莒南县| 理塘县| 万荣县| 亚东县| 枣阳市| 鹤峰县| 龙陵县| 青岛市| 乡城县| 甘德县| 武乡县| 长葛市| 耒阳市| 施秉县| 涪陵区| 电白县| 佛坪县| 青铜峡市| 怀仁县| 天祝| 黑山县| 类乌齐县| 张家界市| 濮阳市| 尚志市| 尼玛县| 江油市| 吐鲁番市| 宁南县| 肃宁县| 涟源市| 乾安县| 聂拉木县| 方山县|