首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Lua 函數定義與多返回值、平行賦值、作用域速查

     編輯:更多程式設計知識

Lua 函數是第一類值,支持多返回值、平行賦值、詞法作用域、閉包。本文以極簡示例速覽核心語法。

基本語法


function foo(a, b, c)
    local sum = a + b      -- local 聲明局部變量(推薦)
    return sum, c          -- 多返回值
end

r1, r2 = foo(1, '123', "hello")  -- 平行賦值接收多返回值
print(r1, r2)  -- 4  hello

關鍵點

  • function ... end 定義函數,可賦值給變量、作參數、返回值。
  • local 限制作用域至塊級(function/if/for 等)。**不加 local 即為全局變量**,污染全局環境,影響性能與維護。
  • 多返回值:return a, b, c,調用方用 x, y, z = func() 接收;多餘返回值被丟棄,不足用 nil 補齊。
  • 平行賦值:a, b = c, d 先計算右側所有表達式,再賦值,支持交換 a, b = b, a。
  • 全局變量:示例中 foo、r1、r2 均為全局。

進階:閉包與工廠函數


function counter()
    local count = 0
    return function()
        count = count + 1
        return count
    end
end

c1 = counter()
print(c1())  -- 1
print(c1())  -- 2

c2 = counter()  -- 獨立閉包,各自 count
print(c2())  -- 1

總結

Lua 函數語法極簡卻強大:**local 必加、多返回值、平行賦值、閉包工廠** 是日常高頻模式。牢記「無 local 即全局」,養成良好作用域習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved