当前位置: 首页 > news >正文

网站建设方案风险分析结合七牛云 做视频网站

网站建设方案风险分析,结合七牛云 做视频网站,公众号怎么做临时链接,淘宝客论坛响应式php网站下载Lua 语法学习笔记 安装(windows) 官网:https://www.lua.org/ 下载SDK 解压&修改名称(去除版本号) 将lua后面的版本号去掉,如lua54.exe->lua.ext 配置环境变量 数据类型 数据类型描述nil这个最简单,只有值n…

Lua 语法学习笔记

安装(windows)

官网:https://www.lua.org/

下载SDK

image-20240721123802978

image-20240721123836142

image-20240721123906339

image-20240721123959065

解压&修改名称(去除版本号)

将lua后面的版本号去掉,如lua54.exe->lua.ext

image-20240721124100681

配置环境变量

image-20240721124218028

数据类型

数据类型描述
nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean包含两个值:false和true。
number表示双精度类型的实浮点数
string字符串由一对双引号或单引号来表示
function由 C 或 Lua 编写的函数
userdata表示任意存储在变量中的C数据结构
thread表示执行的独立线路,用于执行协同程序
tableLua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

string

字符串类型,比较特别的是,字符串的连接不是使用+号,而是使用"…",使用+,字符串会被隐式的转化为数字(如果字符串不是数字将会报错)

str = 'hua'..'kai'
--输出"huakai"
print(str) --输出3,字符串会被隐式的转化为数字
print("1"+2)

table

一个比较强大的数据结构,类似一个数据,但它的索引值,不仅仅是数字(索引值从1开启),也可以是一个字符串,这使得它像一个map

-- 作为map使用
local table1 = {key1="value1",key2="value2"}
for key,value in pairs(table1) doprint(key,value)
end
-- 输出
--key1	value1
--key2	value2-- 作为数组使用
local table2 = {1,2,3}
for index,value in ipairs(table2) doprint(index,value)
end
索引访问

当table索引值为字符串时,支持类型属性的访问使用"."

local table1 = {key1="value1",key2="value2"}
print(table1["key1"]) -- value1
print(table1.key1) --value1
table库函数
  1. table.insert:插入元素。

    local t = {1, 2, 3}
    table.insert(t, 4)
    print(t[4])  -- 输出: 4
    
  2. table.remove:移除元素。

    table.remove(t, 2)
    print(t[2])  -- 输出: 3
    
  3. table.sort:排序。

    local t = {5, 3, 2, 4, 1}
    table.sort(t)
    for i, v in ipairs(t) doprint(v)  -- 输出: 1 2 3 4 5
    end
    

function

函数,类似js,可以作为一个变量

变量

分为全局变量和局部变量,如果不使用local声明,默认都是全局变量哪怕它在局部代码块中

赋值

支持多个变量同时赋值

local a,b = 1,2
a,b = b,a
print(a,b)   --2    a,b 变量交换

循环

Lua 语言提供了以下几种循环处理方式:

循环类型描述
while 循环在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为 true。
for 循环重复执行指定语句,重复次数可在 for 语句中控制。
repeat…until重复执行循环,直到 指定的条件为真时为止
循环嵌套可以在循环内嵌套一个或多个循环语句(while do … end;for … do … end;repeat … until;)
--- while
local a = 3
while (a > 0) doprint(a)a = a - 1
endlocal b = 3--- repeat 循环
repeatprint(b)b = b - 1
until b <= 0--- for 循环
for i = 1, 3 doprint(i)
end--- for 循环,补仓为2
for i = 1, 3, 2 doprint(i)
end

函数

多返回值

支持返回多个值,可以使用多个变量接收,也可以使用一个table接受

local coordinates = {getCoordinates()}
print(coordinates[1], coordinates[2])  -- 输出: 10  20
local x,y = getCoordinates()
print(x,y)  -- 输出: 10  20

字符串

除了可以使用单引号、双引号表达字符串意外,还可以使用[[]]

local str = [[
孤独的人和欢乐的人zuo一块
孤独的人只会觉得更孤独
]]print(str)

计算长度

在 Lua 中,要计算字符串的长度(即字符串中字符的个数),你可以使用 string.len函数或 utf8.len 函数,包含中文的一般用 utf8.lenstring.len 函数用于计算只包含 ASCII 字符串的长度。

注意,uf8在5.3版本后才内置

local str1 = 'huakai'
local str2 = 'huakai不识'print(string.len(str1)) --- 6
print(string.len(str2)) --12 一个中文字符的使用三个字节相当于3倍的ASCII长度
print(utf8.len(str2)) ---8

迭代器

ipairs和pairs比较

  • ipairs 函数用于迭代一个table的数组部分(即索引为连续整数的部分)。迭代从索引1开始,直到遇到第一个 nil 值为止。
  • pairs 函数用于迭代一个table的所有键值对,无论这些键是整数还是其他类型(如字符串)。pairs 不保证迭代顺序,迭代顺序是非确定性的。

模块

定义模块
module = {}module.var1 = 'huakai'--- 这个方法无法被外部访问
local function private_function()print('I‘m private function')
endfunction module.public_function()print('I’m public function')
endreturn module

其中的return可以省略,但是为了体现该文件的是为了作为一个可能被外部引用的模块可以保留

引入模块
-- 存在于自定义的路径
require("hello")require("test2.common")
-- 引入后赋值给一个变量,可以更清晰的定义引用的模块
local common = require("test2.common")print(module.var1)
print(module.public_function())--print(common.public_function())--print(package.path)
  1. 使用**require(“包含路径的文件名”)**可以引用定义好的模块
  2. 在环境变量LUA_PATH,中可以定义自定义的加载路径(多个使用;分割)
    1. C:\Users\huakai\Desktop?.lua;;,前面的就是自定义的加载路径,;;表示新加的路径后面加上原来的默认路径
  3. 使用package.path可以输出当前加载的所有路径

面向对象

元表&__index
  1. 元表(metatable): 元表是一个普通的 Lua 表,可以附加到另一个表上。通过设置元表,可以改变该表的一些默认行为。
  2. __index 字段__index 是元表中的一个字段,用于定义当在表中访问不存在的键时该如何处理。__index 可以是一个表或一个函数。
    • 如果 __index 是一个表,那么 Lua 会在这个表中查找键。
    • 如果 __index 是一个函数,那么 Lua 会调用这个函数,将原表和键作为参数传递给它。
面向对象示例
Dog = {name = '',age = 0,
}
function Dog:new(name, age)local dog = {}setmetatable(dog, self) -- 将Dog设置为dog的元表self.__index = self  -- 将__index字段设置为self,使得dog可以访问Dog的字段和方法dog.name = namedog.age = agereturn dog
endfunction Dog:say()print(self.name .. ' is wang wang')
endfunction Dog:getAge()return self.age
enddog = Dog:new('huahua', 3)dog:say() -- huahua is wang wang
print(dog:getAge()) -- 3
http://www.yayakq.cn/news/922335/

相关文章:

  • 做网站在哪个地方买空间网络营销做得好的品牌
  • 河南定制网站建设报价北京智能建站系统价格
  • 平台网站建设有哪些wordpress 遍历分类
  • 网站产品后台界面怎么做南通快速建设网站服务
  • 牡丹江建设工程信息网站郑州市主城区
  • alexa排名分析昆明搜索引擎的关键词优化
  • 建设自己的网站做像素画的网站
  • 营销网站模板html公司用于做网站的费用怎么做账
  • 网站建设新报价图片欣赏wordpress 商城聊天
  • 外贸型网站开发代还app开发公司
  • 大连网站搜索优网站建设方案项目背景意义
  • win7架设asp网站wordpress未收到数据库
  • 网站建设与规划实验心得体会郑州市做网站公司
  • 重庆企业网站优化报告范文大全
  • 外贸网站的推广方法企业策划推广公司
  • 上海手机端建站模板wordpress搭建tag页面
  • 做网站建设的公司有哪些内容百度应用app
  • 晋州做网站的联系电话免费网站服务器软件下载大全
  • 邢台市建设工程质量监督网站上海公司注册代理服务
  • 网站建设的简历前端一个页面多少钱
  • 无限动力营销型网站建设WordPress 将您重定向的次数过多
  • wordpress怎么上传网站网站建设yingkagou
  • 那个网站做代买门户网站的基本功能
  • 网站品牌推广设计受大众喜欢的域名备案加急
  • 无锡做网站哪里好wordpress同步微博评论
  • 网站搭建素材职业做网站游戏的
  • 南宁共建站公司网站设计是不是一次性收费的
  • 老李网站建设网站开发的资料设备
  • 杭州市下城区建设厅网站杭州市网站推广
  • 网站开发前后端分离是主流吗平面设计素材网站哪个好