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

Lua 入門指南:語句、控制結構與表達式詳解

     編輯:關於C

基本概念

  • 語句組:一組按序執行的語句,可保存為文件或字符串,編譯為字節碼後由虛擬機執行。
  • 分號可選:換行或分號均可結束語句。
  • 多重賦值:a, b = 10, 20;右值多餘捨棄,不足補 nil;先計算所有右值再賦值,故 i, a[i] = i+1, 20 修改的是 a[3] 而非 a[4]。

控制結構

-- if
if cond then block elseif cond then block else block end

-- while
while cond do block end

-- repeat-until(條件可見循環內局部變量)
repeat block until cond

-- 數值 for
for v = start, limit, step do block end

-- 泛型 for(迭代器)
for k, v in pairs(t) do block end   -- 遍歷所有鍵
for k, v in ipairs(t) do block end  -- 只遍歷連續整數鍵 1..n,遇 nil 停止

邏輯運算符

  • and:第一個假值返回它,否則返回第二個值。4 and 5 → 5。
  • or:第一個真值返回它,否則返回第二個值。false or 5 → 5。
  • not:只返回 true/false。not 0 → false(Lua 中 0 為真)。
  • 技巧:x = x or default 相當於 if not x then x = default end。
  • 三元運算模擬:(a and b) or c(注意 b 不能為假值)。

表構造器

-- 數組風格
days = {"Sun", "Mon", "Tue"}

-- 記錄風格
a = {x = 10, y = 20}  -- 等價於 a={}; a.x=10; a.y=20

-- 通用風格
op = {["+"] = "add", ["-"] = "sub"}

-- 混合分隔符
t = {x=1, y=2; "a", "b"} -- 分號分隔不同風格

長度操作符 #

字符串長度 = 字節數。表長度 = 最大整數鍵 n 使得 t[n]≠nil 且 t[n+1]==nil;若有「空洞」結果未定義。

函數定義

func = function(params) body end
function func(params) body end  -- 語法糖

-- 可變參數
function f(...) ... end  -- ... 必須在參數列表末尾

-- 方法語法糖
function obj:method(p) ... end  -- 等價 function obj.method(self, p) ... end
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved