Lua教程-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Lua教程(简单易懂)-CSDN博客

博客相关解释

5、循环

a = {"a", "b"}
	for i, v in ipairs(a) do
		 print(i, v)
	end 

 代码创建了一个名为 a 的数组并使用 ipairs 迭代这个数组的元素。运行结果显示了每个元素的索引下标和对应的值。这是正确的输出结果

1   a
2   b

在循环中i 表示元素的索引从1开始递增而 v 表示元素的值。所以在每次迭代中 i 都会递增而 v 包含了数组 a 中的对应元素。因此输出显示了数组中每个元素的索引和值。

这种方式对于遍历数组并处理其中的元素非常有用特别是当你需要按顺序访问数组中的数据时。

8、字符串

①string.gsub(mainString,findString,replaceString,num)

string.gsub 是Lua中的字符串处理函数用于在字符串中查找并替换指定的子串。以下是该函数的参数和作用

  • mainString: 这是要进行查找和替换操作的主字符串即在这个字符串中查找 findString 并将其替换为 replaceString

  • findString: 这是要查找的子字符串。string.gsub 会在 mainString 中查找所有出现的 findString

  • replaceString: 这是要替换为的新字符串。当 findStringmainString 中被找到时它将被替换为 replaceString

  • num (可选): 这是一个可选参数表示要进行替换的次数。如果省略这个参数所有匹配到的 findString 将都被替换。如果指定了 num则只有前 num 次匹配到的 findString 会被替换。

string.gsub 函数会返回两个值分别是

  1. 一个新的字符串是进行替换操作后的结果。
  2. 一个整数表示替换操作的次数。

下面是一个示例演示如何使用 string.gsub 函数

local inputString = "Hello, world! Hello, Lua!"
local findString = "Hello"
local replaceString = "Hi"

local result, count = string.gsub(inputString, findString, replaceString)

print(result)  -- 输出 "Hi, world! Hi, Lua!"
print(count)   -- 输出 2表示替换操作发生了2次

在这个示例中我们将 "Hello" 替换为 "Hi"并且函数返回的 count 值为 2表示 "Hello" 在字符串中出现了2次都被替换为 "Hi"。 

②string.format("字符串")

string.format 是Lua中用于格式化字符串的函数。它的作用是将不同类型的数据转换为字符串并按照指定的格式组合成一个新的字符串。通常string.format 函数的第一个参数是格式化字符串后面的参数是要插入到格式化字符串中的数据。

以下是使用 string.format 的基本语法

formatted_string = string.format(format, arg1, arg2, ...)
  • format这是一个包含格式占位符的字符串用于指定如何格式化后续参数。占位符以 "%" 开头后跟一个字符表示要格式化的数据类型例如"%s" 表示字符串"%d" 表示整数"%f" 表示浮点数等。

  • arg1, arg2, ...这些是要格式化的数据可以是一个或多个参数根据 format 字符串中的占位符的数量和类型。

以下是一个示例演示如何使用 string.format 格式化字符串

local name = "Alice"
local age = 30
local height = 170.5

local formatted = string.format("Name: %s, Age: %d, Height: %.2f", name, age, height)
print(formatted)

在这个示例中string.format 函数将 name字符串、age整数、和 height浮点数格式化成一个字符串其中 %s 用于字符串%d 用于整数%.2f 用于浮点数。结果将打印出格式化后的字符串。

这个函数在将数据以特定格式输出到字符串时非常有用特别是在生成日志、报告或用户界面文本时。

③string.byte("字符串")/string.char(数值)

string.bytestring.char 是Lua中用于处理字符和字符编码的函数。

  1. string.byte("字符串"):

    • string.byte 用于获取字符串中指定位置的字符的ASCII码或Unicode码点值。
    • 当提供一个字符串作为参数时它会返回该字符串的第一个字符的码点值。
    • 如果你想获取字符串中其他字符的码点值你可以提供第二个可选参数指定字符的位置。
    • 示例
      local str = "Hello"
      local firstChar = string.byte(str) -- 获取第一个字符 "H" 的码点值
      print(firstChar) -- 输出 72
      
      ​

       

 2.string.char(数值):

  • string.char 用于创建一个包含一个或多个字符的字符串根据给定的ASCII码或Unicode码点值。
  • 你可以传递一个或多个整数作为参数它将把这些整数转化为相应的字符并返回一个新的字符串。
  • 示例
    local char1 = string.char(72) -- 创建一个包含 ASCII 码为 72 的字符的字符串
    local char2 = string.char(72, 101, 108, 108, 111) -- 创建包含多个字符的字符串
    print(char1) -- 输出 "H"
    print(char2) -- 输出 "Hello"
    

    这些函数对于字符编码和字符操作非常有用允许你在字符串和数字之间进行转换并创建包含特定字符的字符串。

 

10、迭代器

for k,v in pairs(t)
	print(k,v)
end

代码示例是一个在Lua中用于遍历一个表table的通用方法。它使用for循环结构和pairs函数来遍历表中的键和对应的值。以下是代码的解释

  • for k, v in pairs(t)这是for循环的头部它用于遍历表t的内容。kv是循环的控制变量k用于表示键keyv用于表示值value。

  • pairs(t)这是Lua的pairs函数它用于获取表t中所有的键值对。pairs函数返回一个迭代器可以用于遍历表。

  • do这是for循环的开始标志着循环体的开始。

  • print(k, v)这行代码是循环体用于在每次迭代中输出键和值。k表示当前键v表示当前值。

  • end这是for循环的结束标志着循环体的结束。

上述代码会遍历表t中的所有键值对并将它们分别存储在kv中然后使用print函数将它们输出到控制台。这是一种常见的方式用于检查表中的数据、处理键值对或进行其他操作。

11、table相关 

②表的操作

table.concat(table,sep,start,end)

table.concat 是 Lua 中用于将表table中的元素连接成一个字符串的函数。它的参数和作用如下

  • table这是包含要连接的元素的表。
  • sep这是一个可选的分隔符用于在连接元素之间插入。如果省略该参数元素将直接连接在一起。
  • start这是可选的起始索引指定从表的哪个位置开始连接元素。默认是1。
  • end这是可选的结束索引指定在表的哪个位置结束连接元素。默认是表的最后一个元素。

table.concat 函数会返回一个包含连接后的字符串的新字符串。

以下是一个示例演示如何使用 table.concat 函数

local fruits = {"apple", "banana", "cherry", "date"}
local result = table.concat(fruits, ", ", 2, 3)

print(result)  -- 输出 "banana, cherry"

在这个示例中我们有一个包含水果名称的表 fruits。我们使用 table.concat 函数来连接表中的元素使用逗号和空格作为分隔符并指定从第2个元素"banana"到第3个元素"cherry"进行连接。结果是 "banana, cherry"。如果不指定 sepstartend 参数它将连接整个表中的所有元素。 

 

12、模块和包

require "<模块名>" 或require("<模块名>")

require 是 Lua 中用于加载模块的关键字。当你使用 require 语句时你可以指定要加载的模块名称并且 Lua 会尝试查找并加载相应的模块。通常模块名称是一个字符串通常包括模块的路径信息。

下面是一般形式的 require 语句

require "<module_name>"
  • <module_name> 是要加载的模块的名称或路径。

模块可以是内置的Lua库也可以是自定义的Lua文件你可以使用 require 语句将其导入到你的Lua脚本中以使用其中定义的函数、变量和功能。要成功使用 require需要确保模块所在的路径在Lua的模块搜索路径中或者提供完整的路径。这通常需要模块以.lua文件的形式存在并且可以通过相对或绝对路径引用。

以下是一个示例

-- 加载Lua标准库中的math模块
local math_module = require "math"

-- 使用math模块中的函数
local sqrt_value = math_module.sqrt(25)
print(sqrt_value)  -- 输出 5

 在这个示例中require "math" 加载了Lua标准库中的math模块然后我们使用math_module来调用模块中的sqrt函数来计算平方根。

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6