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

001 线性查找(lua)

文章目录

    • 迭代器
    • 主程序

迭代器

-- 定义一个名为 linearSearch 的函数,它接受两个参数:data(一个数组)和 target(一个目标值)  
function linearSearch(data, target)  -- 使用 for 循环遍历数组 data,ipairs 是一个迭代器,用于在数组中遍历键值对  for i, v in ipairs(data) do  -- 如果当前遍历到的值 v 等于目标值 target  if v == target then  -- 找到目标值,返回其索引 i  return i  end  end  -- 如果循环结束都没有找到目标值,返回 -1  return -1  
end  -- 定义一个数组 data,包含一系列整数  
data = {13, 66, 54, 73, 23, 55, 18}  
-- 定义一个变量 target,赋值为 66  
target = 66  -- 调用 linearSearch 函数,并将结果赋值给变量 res  
res = linearSearch(data, target)  
-- 打印变量 res 的值  
print(res)

Lua 脚本语法的关键点:

函数定义:
function 关键字用于定义函数。
函数名后面跟着括号,括号内是函数的参数列表。
函数体跟在参数列表之后,用 end 关键字结束。
for 循环:
Lua 中的 for 循环可以配合迭代器使用,例如 ipairs 用于遍历数组的索引和值。
for i, v in ipairs(data) do 表示对数组 data 进行遍历,i 是索引,v 是对应的值。
条件语句:
if 语句用于进行条件判断。
如果条件为真(true),则执行 then 后面的代码块。
可以使用 else 和 elseif 来处理其他情况。
return 语句:
用于从函数中返回值。
如果函数中没有 return 语句,或者 return 后面没有跟任何值,则默认返回 nil。
数组和变量:
Lua 中的数组使用花括号 {} 定义,数组元素之间用逗号分隔。
变量不需要提前声明,直接使用赋值语句即可创建和初始化。
打印输出:
使用 print 函数来打印输出变量的值或者文本信息。

主程序


function linearSearch(data, target)  for i = 1, #data do  -- 这是一个for循环,用于遍历数组data。#data获取数组data的长度。Lua中的数组索引从1开始,所以循环变量i从1开始,到数组的长度结束。if data[i] == target then  return i end  end  return -1  
end  -- Main program  
do  local data = {13, 66, 54, 73, 23, 55, 18}  local target = 66  local res = linearSearch(data, target)  print(res)  
end

Lua 数组的索引是从1开始的,也就是说它们的索引从1开始计数。
Lua我们定义了一个全局函数linearSearch来执行搜索。
在Lua中,我们使用一个匿名的do … end块来包含主程序逻辑。这个块在脚本运行时会被立即执行。
在Lua中,局部变量是使用local关键字声明的。这有助于避免污染全局命名空间。
Lua中的print函数用于输出结果

http://www.lryc.cn/news/387684.html

相关文章:

  • 数据结构之链表
  • 【小工具】 Unity相机宽度适配
  • centos误删yum和python
  • WP黑格导航主题BlackCandy
  • elasticsearch底层核心组件
  • EasyExcel数据导入
  • 20240630 每日AI必读资讯
  • 第十一章 Qt的模型视图
  • 力扣 单词规律
  • 10款好用不火的PC软件,真的超好用!
  • Windows怎么实现虚拟IP
  • 【计算机网络】HTTP——基于HTTP的功能追加协议(个人笔记)
  • 【多媒体】Java实现MP4视频播放器【JavaFX】【音视频播放】
  • 2024 Parallels Desktop for Mac 功能介绍
  • 颍川韩氏,来自战国七雄韩国的豪族
  • Spring boot中如何使用Thymeleaf模板
  • 单片机学习(14)--DS18B20温度传感器
  • ue 材质贴图Tiling repeat
  • 【图像超分辨率】一个简单的总结
  • WEB与低代码:B/S架构在开发中的应用与优势
  • 内容营销专家刘鑫炜揭秘:姜萍一夜暴红背后的品牌传播密码
  • 安装VEX外部编辑器
  • ISO 19110全局要求类/req/global/bound-association-role要求的详细解释
  • 武汉凯迪正大等简述电缆电容检测:原理、应用与重要性
  • python调用阿里云OSS对象存储
  • 530、二叉搜索树的最小绝对差
  • docker配置redis主从复制
  • IPython调试秘籍:pdb调试器深度解析与实战
  • MySQL 死锁处理
  • scatterlist的相关概念与实例分析