lua 詭異 的return用法

2022-03-14 01:22:57 字數 2365 閱讀 9093

德哥摘要: 在lua中, return的用法比較"詭異", 為什麼這麼說呢, 因為它只能用在block結束的地方, 不能用在block的乙個中間部分.例如function a() i = 1 return i -- 這裡會報錯, 提示return後面必須是end, 意思是既然你要return了, 那麼就結束這個塊吧.

在lua中, return的用法比較"詭異", 為什麼這麼說呢, 因為它只能用在block結束的地方, 不能用在block的乙個中間部分.

例如

function a()

i = 1

return i -- 這裡會報錯, 提示return後面必須是end, 意思是既然你要return了, 那麼就結束這個塊吧.

i = 2

end

例如 : 

> function a()

>> i = 1

>> return i

>> i = 2

stdin:4: 'end' expected (to close 'function' at line 1) near 'i'

那麼如果要在乙個函式或者乙個block的非末尾部分使用return 怎麼用呢?

可以把return 包在do end之間. 例如 : 

> function a()

>> i = 1

>> do return i end -- 這裡是允許的.

>> i = 2

>> end

> print(a())

1

另外, return在迴圈, 判斷中的使用也和函式中類似, 必須使用在迴圈結束, 或者判斷的乙個拐點結束前. 例如 : 

> if i == 1

>> then

>> return -- 這裡不能使用, 因為下面不是elseif或者else或者end.

>> i=2

stdin:4: 'end' expected (to close 'if' at line 1) near '='

所以在判斷中, 放在乙個拐點結束前 : 

if i == 1

then

return

elseif i == 2

then

return

else

return

end

-- 以上用法是可以的, return分別放在elseif, else, end前面. 拐點 結束前.

在迴圈中使用則放在迴圈結束前.

但是你會發現, 如果結束處用的是乙個print函式, 居然不報錯 : 

> for x=1,10,1 do

>> print(x)

>> return

>> print(x+1)

>> end

12

return後面換成賦值就報錯了

> for x=1,10,1 do

print(x)

return

print(x+1)

x=2stdin:4: 'end' expected (to close 'for' at line 1) near 'x'

> for x=1,10,1 do

print(x)

return

x=2

stdin:4: 'end' expected (to close 'for' at line 1) near '='

"詭異"來形容不為過.

還是得把return包在乙個do end裡面

> for x=1,10,1 do

print(x)

do return end

print(x)

x=2>> end

1

用在repeat中

> repeat do

i=1print(i)

return

print(i)

end until i == 211

> repeat do

i=1print(i)

return

print(i)

x=2 -- 這裡又會報錯.

end until i == 2

stdin:4: 'end' expected (to close 'do' at line 1) near 'x'

lua 詭異 的return用法

在lua中,return的用法比較 詭異 為什麼這麼說呢,因為它只能用在block結束的地方,不能用在block的乙個中間部分.例如 function a i 1 return i 這裡會報錯,提示return後面必須是end,意思是既然你要return了,那麼就結束這個塊吧.i 2 end 例如 ...

lua 中return與break的用法

記錄 lua提供的跳出關鍵字 break 和 return,lua不提供continue.語句break用於跳出迴圈,終止for repeat while 三種迴圈的執行,並跳出當前迴圈體,繼續執行當前迴圈之後的語句,在迴圈外部不可用。例 定義變數 a 10 while 迴圈 while a 20 ...

return語句的用法

return語句用於退出函式,向呼叫方返回乙個表示式。return在不帶引數的情況下 或者沒有寫return語句 預設返回none。none是乙個特殊的值,它的資料型別是nonetype。nonetype是python的特殊型別,它只有乙個取值none。它不支援任何運算也沒有任何內建方法,和任何其他...