多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Lua函數的多個返回值

Lua函數的多個返回值

來源:程序員人生   發布時間:2016-10-22 13:59:41 閱讀次數:3778次
        C++和Java 中return都不允許返回多個值。Lua中的函數的1個很特殊也很有用的性質,便可以有多個返回值。包括1些內置的函數就是這樣。比如string.find函數,在給定的字符串中查找1個pattern,如果有匹配的部份,則返回對應的頭、尾的兩個索引值;如果不存在匹配,則返回nil。固然,用戶定義的函數也能夠有多個返回值,通過return關鍵字返回多個結果便可。比如1個返回數組中最大值及其索引的函數:
function max(a) local m = a[1]; local mIndex = 1; for i,v in ipairs(a) do if v>m then m = v; mIndex = i; end end return m,mIndex; end
 通常情況下,Lua會根據函數調用的不同情況自動調劑返回值的有效個數。主要有以下幾種情況:
       1. 如果函數調用作為1個單獨的語句,比如max({1,2,3}),則疏忽所有的返回值;
       2. 如果調用途在1串的表達式中:
           1)如果處于表達式串的首位或中間,則只有第1個返回值被返回;
           2)如果處于最后1個表達式,則所有的返回值都有效;
       拿下面3個函數作為例子:
function f0() end; function f1() return "a" end function f2() return "a","b" end
        在多重賦值中,如果函數調用作為唯一的或最后1個表達式,則返回盡量多的值來匹配左側的變量,如果多出,自動疏忽;如果不夠,賦為nil。比如,
x = f1() --x="a","b"被疏忽 x,y = f1() --x="a",y="b" x,y,z = f2() --x="a",y="b",z=nil x,y,z = 10,f2() -- x=10, y="a", z="b" x,y,z = f2(),10 -- x="a", y=10, z=nil, f2只返回1個值
同理, 作為另外一個函數的參數時,規則1樣:
print(f2()) --> a b print(f2(), 1) --> a 1 還有用來構造數組時: [plain] view plain copy t = {f2()} -- t = {"a", "b"} t = {f0(), f2(), 4} -- t[1] = nil, t[2] = "a", t[3] = 4
        最后,當函數返回值作為另外一個函數的返回值被返回時,則全部被返回。如果想強迫只返回1個值 ,則可以用括號 "()" 把表達式括起來便可。比如:
function foo (i) if i == 0 then return foo0() elseif i == 1 then return foo1() elseif i == 2 then return foo2() end end [plain] view plain copy print(foo(1)) --> a print(foo(2)) --> a b print(foo(0)) -- (無返回值) print(foo(3)) -- (無返回值)
如果想強迫只返回1個值,則可以用括號 "()" 把表達式括起來便可:
print((foo0())) --> nil print((foo1())) --> a print((foo2())) --> a


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 视频二区 调教中字 知名国产 | 亚洲国产欧美视频 | 亚洲精品国产精品国自产 | 国产不卡免费视频 | 日韩手机在线视频 | 最近中文在线国语 | 日韩精品一区二区三区中文精品 | 亚洲女视频| 日本三级成人午夜视频网 | 精品视频在线观看一区二区三区 | 精品国产高清a毛片 | 国产狂喷白浆在线观看视频 | 欧美综合国产精品日韩一 | 欧美日本韩国 | 亚州都市春色校园小说另类 | 国产一级做a爰片久久毛片99 | 欧美一级视频免费看 | 日本大片免费一级 | 97午夜理伦片在线影院 | 成人免费观看视频久爱网 | 高清亚洲 | 中文字幕在线视频网 | 免费午夜不卡毛片 | 国产成人在线视频 | 中国欧美一级毛片免费 | 国产色在线 | 亚洲 国产色综合久久无码有码 国产色综合一区二区三区 国产上床视频 | 欧美网色 | free13俄罗斯性xxxxhd | 亚洲成a v人片在线观看 | 国产精品亚洲欧美一级久久精品 | 国产jiyzz视频在线看 | 国产亚洲精品一区二区 | 国产成人免费视频精品一区二区 | 精品一区二区三区在线视频 | 久久精品六 | 免费国产阿v视频在线观看 免费国产成高清人在线视频 | 最新国产在线观看福利 | 天堂在线最新版在线www | 久久99国产精一区二区三区! | 亚洲码在线观看 | 亚洲a视频在线 |