Lua中的虚变量——"_"

(Lua 笔记):lua变量、赋值语句 目录 Lua 变量 赋值语句 索引 Lua 变量 变量在使用前,需要在代码中进行声明,即创建该变量。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,无论是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 -- test.lua 文件脚本 a = 5 -- 全局变量 local b = 5 -- 局部变量 func. 阅读详情

《Programming in Lua》中有一段使用虚变量的代码,一些新手不太了解含义,这里讲解一下。

一个典型的方法是使用虚变量(下划线)
local _, x = string.find(s, p)
-- now use 'x'
...
Lua的函数可以具有多个返回值,比如下面的示例代码:
print(string.find("example", "am"))  --- 输出 3 4
string.find 默认情况下返回两个值,即查找到的子串的起止下标,如果不存在匹配返回 nil。如果我们只想要 string.find 返回的第二个值,可以使用虚变量(即下划线)来存储丢弃不需要的数值。

local _, s = string.find("example", "am")  
print(s)  ----- 输出 4

总结来说,用一些不太会用到的名字命名一个回收箱变量,然后把不需要的值都丢到里面去,这种做法被称作虚拟变量法。

ps:"_" 就是一个变量,打印下就应该理解了

print(_)


36_Lua中的变量 文档主要介绍了 Lua 中的变量与数据类型。在变量方面,分为全局变量和局部变量。全局变量无需声明可直接赋值,存储于_G表,访问未初始化的全局变量为nil,将变量赋值为nil可删除它。局部变量用local声明,作用域限于特定代码块,声明有“提升”行为,且变量与值个数不一致时有相应处理策略,建议多使用以避免命名冲突和提高访问速度。 阅读详情

相关推荐

移动端抓包实战指南:从HTTPS解密到QUIC协议与证书绑定破解

HTTPS作为保障网络通信安全的核心协议,其工作原理基于TLS/SSL加密与证书信任链验证。在移动应用开发与测试中,抓包是调试接口、分析性能、排查问题的关键技术手段。然而,随着移动端安全性的提升,传统的代理抓包方法常因证书绑定、HTTP/3/QUIC协议等挑战而失效。这要求开发者掌握分层诊断思维,协同使用代理工具、协议分析工具及底层流量捕获工具。例如,面对证书绑定导致的流量不可见,需借助Wireshark进行协议层分析;针对基于UDP的QUIC协议,则需使用支持该协议的抓包工具或临时禁用特性。本文聚焦移动端

weixin_27722377的博客 298

Lua学习笔记

1.注释 --单行注释 多行注释 --[[ --]] 2.变量命名 最好不要使用下划线加大写字母作为标示符,因为lua内部的保留字也是这样命名的。Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 Lua 是一个区分大小写的编程语言。 3.全局变量 默认情况下,变量总是全局的。局部变量使用local 变量不需要声明,在赋值时会创建。 访问一个没有...

qq826364410的专栏 907

《广告核心指标驱动的AI投放系统:从数据洞察到智能决策的全链路优化》

本方案通过构建广告核心指标驱动的AI投放系统,实现从数据采集到智能决策的全链路自动化。

专注Java领域与微服务架构,热爱人工智能与深度学习 1068

【Lua学习笔记】Lua入门基础的语法

变量的定义 1.通常由A-Z或a-z组成加下划线、数字 2.也可以_开头加小写字母 3.变量区分大小写 全局与局部变量 1.使用local关键字定义局部变量 2.未使用local关键字的默认为全局变量 local a= 123 --为局部变量 b = 567 --b为全局变量 --注意多使用局部变量 --1.减少变量冲突 --2.访问速度比全局变量快 注释 -- 单行注释 ...

行识 388

Rocfall安装包&安装教程

Rocfall 第一步:下载安装包 下载路径: 链接:https://pan.baidu.com/s/1Dzvxzv67dSPRi7f7ZT9EeA 提取码:o9pl 第二部:安装 安装包解压 选择part1进行解压 点击Setup.exe启动安装 生成Serial Number 替换启动程序 安装完毕 素材来源于网络(禁止用于商业仅用于完成毕业设计和研究使用) 谢谢! ...

cym的博客 8704

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1119

lua中的面向对象

lua实现面向对象编程是基于元表 metatable,元方法 __index 来实现的。 lua中的语法糖 lua的table中可以定义函数,如下图: local a = { x = 1, print = function(obj) print("x=" .. obj.x) end } 如上图,定义了一个名叫 a 的table,可以通过调用 a.print(a) 来打印table a 中的 x key对应的value值。 像是 a.print(a) 这种形式,在.

hermi0ne的博客 425

Cadence IC618与Spectre231安装配置全攻略:License、环境变量与依赖检查

EDA工具部署中,License管理与环境变量隔离是核心难点。FlexLM作为通用授权机制,通过守护进程和端口配置实现工具授权;环境变量则控制工具路径与库加载顺序,避免版本冲突。合理配置可确保IC618与Spectre231稳定运行,提升仿真效率。典型应用场景包括模拟IC设计、高校实验室及企业级EDA环境。本文聚焦Cadence IC618与Spectre231的安装实践,详解License配置、环境隔离及依赖检查,助你快速搭建可靠设计环境。

weixin_28721917的博客 330

Lua入门24式

--例1 第一个程序 --经典hello程序 print("hello") --输出 hello --例2 注释 --单行注释使用“--”即可 --[[多行注释以“--[[”开始, 以“]]”结束]] --当然本例没有输出,因为它全部是注释 --例3 变量 --变量有值的时候才有类型,否则变量本身是无类型的 a=1 b="abc" c={} d=pr

风无定人无常 1690

xilinx vivado 设置多核多线程加快综合、布局布线、仿真速度的方法

加快vivado布局布线速度的多核编译方法 在tcl中执行下面的语句 set param general.maxThreads n来设置,n是你的CPU线程数。 在设置之后你可以通过get_param general.maxThreads 指令来确认是否成功设置, 加快vivado综合速度的多核编译方法 操作方法与上面加快布局布线的方法一样。 实际发现效果并不是很明显,官方论坛中提到只有在LINUX上才能发挥8核以上的效能,而且8核以上的效能提升并不明显。 加快vivado仿真.

shawn的FPGA圈 2万+

【异常】Cursor报错We‘re having trouble connecting to the model provider. This might be temporary

在使用Cursor编辑器进行AI交互操作时,界面弹出如下报错提示,导致无法正常调用模型服务,影响使用流程:We’re having trouble connecting to the model provider. This might be temporary - please try again in a moment. 该报错核心含义为Cursor编辑器无法正常连接至背后的AI模型服务提供商(如OpenAI、Anthropic等),属于连接类异常,并非编辑器本身运行故障。经排查,该报错不具备破坏性,仅

奶爸的编程之路,也就一周冷个三天 1693

Lua代码编写规范

Lua代码编写规范开发中,大量使用lua,暂时根据当前状况,总结相对而言较好的规范,在多人协作中可以更好的开发、交流。介绍该文档旨在为使用lua编写应用程序建立编码指南。制订编码规范的目的:统一编码标准,通用,提高开发效率;使代码通俗易懂,易于维护。切记:善用调试器。一、命名惯例1.所有lua文件命名时使用小写字母、下划线2.类名、变量名尽可能使用有意义的英文,类名使用帕斯卡

小枫的专栏 1万+

315、弱电基础知识介绍

常见的弱电系统包括:闭路电视监控系统、防盗报警系统、门禁系统、电子巡更系统、停车场管理系统、可视对讲系统、家庭智能化系统及安防系统、背景音乐系 统、LED显示系统、等离子拼接屏系统、DLP大屏系统、三表抄送系统、楼宇自控系统、防雷与接地系统、寻呼对讲及专业对讲系统、弱电管道系统、UPS不 间断电源系统、机房系统、综合布线系统、计算机局域网系统、物业管理系统、多功能会议室系统、有线电视系统、卫星电视系统、卫星通讯系统、消防系统、电话 通讯系统、酒店管理系统、视频点播系统、人力资源管理系统等等。

qq_43416206的博客 1367

Lua中的变量使用

一、三种变量 Lua中在使用变量前必须声明,这一点和Java是一样的。因为编译程序执行代码之前,编译器需要给语句里的变量开辟存储区,用于存储变量所指的值。 Lua的变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 例: -...

Chrogean的博客 1040

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Lua 变量

Lua 变量概述 Lua 变量支持动态类型,无需预先声明类型,可通过赋值自动创建。变量分为全局变量(默认)和局部变量(使用 local 关键字定义),局部变量作用域限于定义的块(如函数、循环等)。推荐使用 local 以提高性能并避免命名冲突。变量可存储 8 种数据类型,包括 nil、布尔、数字、字符串、表、函数等。表(table)是最常用的复杂数据类型,支持数组和字典结构。 关键特性: 全局变量:整个程序可见,存储在 _G 表中。 局部变量:块级作用域,函数/循环内有效。 多重赋值:支持 a, b = 1

likuoelie的博客 1326

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lua中虚变量

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33845477的博客 528

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

c语言lua打印变量名称,详解Lua中的变量相关知识点

变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不同的,因为Lua是区分大小写的。有八种基本类型值在Lua中:在Lua,尽管我们没有变量的数据类型,我们基于该变量范围的三种类型。全局变量:所有的变量默是全局除非显式地声明为局部。局部变量:当类型被指定为局部的一个变量,它的范围是有限的在自己的范围内...

weixin_30322901的博客 1609

Lua学习之变量使用

Lua变量 变量在使用前,需要在代码中进行声明,即创建该变量 Lua 变量有三种类型:全局变量、局部变量、表中的域 在变量首次赋值之前,变量的值均为 nil 一、赋值 赋值是改变一个变量的值和改变表域的最基本的方法 1.Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量 如:a,b=10,9   相当于a=10;b=9 2.遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值 如:x,y=y,x   即交换

生活总是来来往往 千万别等来日方长 631

local lua 多个_Lua 变量

Lua 变量变量在使用前,需要在代码中进行声明,即创建该变量。编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。Lua 变量有三种类型:全局变量、局部变量、表中的域。Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。变量的默认值均为 nil。实例-- test.lua 文件脚本...

weixin_29229261的博客 953

Lua神奇之旅~~lua中的变量

对于脚本语言lua,它采用的是自动内存管理机制,所以使用时无需考虑内存的释放和分配,直接用即可 他的变量类型为以下8种: nil  nil是一种特殊的类型,它只有一个值nil , 主要功能就是为了区别lua中其他的值,Lua中的对于他的定义是一种“无效值”,类似于C++中的NULL boolean  其实就是传统的布尔类型,其类型包含的值有2个 ,显而易见的: false 和 tr

qq_30168505的博客 2800

详解Lua中的变量相关知识点例子解析

Lua 是一种轻量级的脚本语言,它被设计为简单、高效且易于嵌入。truefalse。

IT老农民的博客 869

关于Lua中的变量赋值

1.lua中表table的赋值实质为引用 lua代码举例如下 local TabA = {["a"] = 1,["b"] = 2} local TabB = TabA--将TabA赋值给TabB print(TabA.a) print(TabB.a) TabB.a = 5--此处对表TabB进行操作 print(TabA.a) print(TabB.a) print("~~~~~~~~~~~~~~~~~~~~~~~~~") local NumA = 1 local NumB = NumA NumB =

sindyra的博客 1642

Lua中的变量

Lua中的变量,分为全局变量和局部变量。 如果没有特别声明,则就是全局变量,在全局有效。想要删除该全局变量时,将其赋值为nil即可。 local 局部变量的关键字;局部变量只在代码块内有效。 a = 10 b = 5 function f(x) local b = 0 b = x print (b) --局部变量b 跳出函数f后即失效 ...

diqigan3300的博客 254
下一篇: Lua学习备忘录
tinywang5575
博客等级 码龄15年 5粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值