[LUA学习笔记04]Lua语法--数据类型

别再死磕RD算法了!用MATLAB手把手复现SAR后向投影(BP)成像(附完整代码与避坑点) 本文详细介绍了如何使用MATLAB实现合成孔径雷达(SAR)后向投影(BP)成像算法,突破传统RD算法在大斜视和复杂轨迹场景中的局限。通过完整的代码示例和避坑指南,帮助读者掌握BP算法的核心原理、内存优化策略和并行计算技巧,提升SAR成像精度与效率。 阅读详情

1. 注释

两个减号引导一行注释
-- this is comment
-- 这是注释

2. 变量

  • 无类型变量
  • 变量名区分大小写
  • 建议不要使用下划线后跟大写(如_LUAOCCUPIED)命名变量,此为LUA内部变量
  • 不需要显式声明变量
  • 未初始化的变量值为nil(注:nil不能参加数学运算)
  • 允许多重赋值
    • 例如 a,b,c = 1,2,3; 等同于 a=1;b=2;c=3;
    • 若右值缺少:没有对应右值的左值被置为nil
    • 若左值缺少:多余的右值被忽略

3. 数据类型

  • numeric 包括整型和浮点型
  • string 字符串
  • function 函数引用,类似C语言的函数指针
  • table 可以充当相关数组、链表、类
  • userdata 可以在LUA中保存C语言的 void* 类型
  • nil 空(NULL的增强版)
函数type()可以返回变量的类型名称。

table类型

初始化
IntArray = {10, 50, 100} StringArray = {"hello", "world", "!"}

初始化索引从1开始,上例中IntArray 1=10; StringArray 1="hello";
但是仍然可以手动赋值: IntArray 0=-100;

索引键
table的索引键只有在第一次被访问时才创建。
例如
IntArray[0] = 1;  IntArray[5000] = 5000;

只有0和5000这两个键被创建。

表成员可以是异类数据
table每个索引对应的值可以是任何类型,甚至是另一个table的引用,例如
MyTable[0] = 100; MyTable[1] = 3.14; MyTable[2] = "string text"; MyTable[3] = {"a","b",1,2,3}; -- 这就相当于二维数组 -- MyTable[3][1]就是"a"


表存储的是引用
table的值只是对于一个数据的引用
a = {}; b = {}; a[10] = {1,2,3}; b[1] = a; b[1][10][2]= "changed"; -- b[1][10][2] 相当于 a[10][2] -- 所以此时a[10][2] = "changed"


用作关联数组
LUA中可以用字符串作为索引键,从而形成 KEY - VALUE 对
Person = {}; Person["name"] = "My Name"; Person["age"] = 24;  print( Person["name"]); print( Person.age);    --也可以通过点操作符访问成员


Table["key"] 与 Table.key 总是等价。 
SLAM 轨迹评估工具——EVO安装、使用介绍 evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。 阅读详情

相关推荐

Qt事件处理与用户交互的艺术

本文深入探讨了Qt框架中的事件处理机制,包括事件的种类、信号-槽机制、事件循环和传播、以及如何处理鼠标和键盘事件。通过实例展示了如何创建直观且响应迅速的用户界面。

weixin_35459464的博客 735

Lua中的虚变量——"_"

《Programming in Lua》中有一段使用虚变量的代码,一些新手不太了解含义,这里讲解一下。 一个典型的方法是使用虚变量(下划线) local _,x = string.find(s, p) -- now use 'x' ... Lua的函数可以具有多个返回值,比如下面的示例代码: print(string.find("example", "am")) --- 输出 3 4

tinywang5575的专栏 7742

掌握Visual Basic基础:变量、事件与用户交互

本文通过探讨Visual Basic的基础概念,包括变量的使用、事件驱动的程序执行以及用户交互方式,旨在帮助初学者快速入门。文中通过实例介绍了如何编写一个简单的VB程序,以及如何通过控件和命令菜单对控件进行格式化和对齐。同时,强调了帮助系统在编程学习中的作用,并且通过实际的编程练习加深理解。

weixin_29717341的博客 1005

Lua中的模式

Lua中有很多字符分类: . 所有字符 %a 字母 %c 控制字符 %d 数字 %l 小写字母 %p 标点符号 %s 空白字符 %u 大写字母 %w 字母和数字字符 %x 十六进制数字 %z 内部表示为0的字符 上面这些分类的大写形式表示他们的

活在阳光下 3526

Lua_Lesson_02 lua的基本语法

注释 单行注释 --这是一个单行注释,在Lua语言中,注释是两个减号 多行注释 --[[ 这是一个多行注释 ]] --[[ 为了美观,也可以这样写,在下面的方括号加上两个减号 --]] 标识符 Lua 标示符用于定义一个变量,简单点说就是变量名称。A--Z,a--z,下划线开头加上 0 个或多个字母,下划线,数字(0 到 9)。 尽量不要用下划线加大写字母的变量名称,因为Lua的关键字也是这样的 Lua 不允许使用特殊字符如@,$, 和%来定义标示符...

g73269565的博客 187

Lua -- 字符串操作

Lua 字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[和]]间的一串字符。字符串操作Lua 提供了很多的方法来支持字符串的操作: 字符串全部转为大写字母。 string.upper(argument): 字符串全部转为小写字母。 string.lower(argumen

阳仔博客 1165

给文字加下划线

 style="cursor:hand; text-decoration:underline"  style="text-decoration:underline" //文字加下划线style="cursor:hand"//当鼠标放文字上面时变成手的形状

6536

与用户交互事件的三种写法

这里以Button控件的onClick事件为例   1、匿名内部类的形式 Button button = (Button) findViewById(R.id.btnShow); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ...

proape的专栏 245

【ReactNative】事件处理与用户交互

本文介绍了React Native中的事件处理与用户交互,重点讲解了常见事件类型(onPress、onChangeText、onSubmitEditing等)及其应用场景。通过代码示例展示了如何处理按钮点击事件、文本输入和多字段表单,包括实时更新状态和提交表单数据。这些知识是构建交互式移动应用的基础,帮助开发者实现用户输入处理和表单验证功能。

silverclayz的技术分享 1439

深入探索JavaScript中的DOM事件:详解事件注册方法与兼容写法

DOM事件是由浏览器生成的消息,用于通知网页中的某些事情发生了改变。常见的DOM事件包括点击、鼠标移动、键盘输入等。通过本文的介绍,我们了解了DOM事件的基本概念、各种事件注册方法及其兼容性写法,并学习了如何使用事件对象、控制事件传播以及移除事件处理程序。掌握这些知识可以帮助你在Web开发中更好地处理用户交互和动态内容更新,提升用户体验。希望这篇文章能为你提供有价值的参考和指导。

AI 爪客,专注 AI 智能体与 Skill 研发落地,斩获腾讯云、讯飞、小米等多场 AI 赛事奖项,分享 Agent 实战干货与工程化经验。 1282

Vue3用户交互——事件

Vue3用户交互事件,鼠标单击事件、输入框双向绑定和修饰符,表单

wxid_856d59fjl8ea22的博客 1015

Pannellum事件系统:监听用户交互与状态变化的完整事件手册

Pannellum是一个轻量级、免费开源的Web全景查看器,它提供了完整的事件系统来监听用户交互、场景变化和状态更新。通过掌握这些事件,开发者可以创建交互性极强的全景应用,从简单的图片展示到复杂的虚拟导览系统。😊 ## 为什么需要Pannellum事件系统? Pannellum事件系统是构建动态全景应用的核心工具,它让你能够: - **实时响应用户操作**:捕捉鼠标点击、触摸手势和键盘输入

gitblog_00124的博客 661

Tauri事件系统:处理用户交互和系统事件

Tauri事件系统(Event System)是连接Web前端与Rust后端的核心通信机制,允许应用程序响应各种用户交互(如按钮点击、键盘输入)和系统事件(如窗口大小变化、应用状态变更)。相比传统Electron架构,Tauri事件系统通过**进程间通信(IPC, Inter-Process Communication)** 实现高效数据传输,具有更低的资源占用和更高的安全性。 ### 1.1 ...

gitblog_00317的博客 991

Flutter中的用户交互事件

通过本文,我们初步了解了Flutter中的用户交互事件处理机制。我们学习了如何使用指针事件和手势识别来响应用户的操作,以及Arena的作用和工作原理。当然,这只是用户交互事件处理的入门知识。Flutter提供了更多强大的功能和组件,可以满足各种复杂的交互需求。希望这篇文章对你有所帮助。这里是甜瓜看代码,期待你的关注!

m0_69656288的博客 272

JavaScript 第11章:事件与用户交互

现在我们的游戏有了排行榜功能、难度选择和音效,使得游戏体验更加丰富。你可以继续根据需求添加更多功能,比如在线排行榜、多语言支持等。希望这个扩展版的键盘游戏能够激发你的灵感,帮助你更好地理解 JavaScript 中的事件处理和用户交互。

hummhumm的专栏 1306

PixiJS事件系统与用户交互

PixiJS事件系统与用户交互 【免费下载链接】pixijs 项目地址: https://gitcode.com/gh_mirrors/pix/pixijs PixiJS ...

gitblog_00290的博客 925

WinToast事件处理实战指南:轻松捕获用户交互与通知状态

WinToast是一个轻量级的C++库,专门为Windows 8和Windows 10系统提供现代化的toast通知集成。通过WinToast事件处理机制,开发者可以轻松捕获用户与通知的交互,实现更智能的应用程序反馈系统。本文将深入探讨WinToast事件处理的实战技巧,帮助您掌握用户交互捕获和通知状态管理的完整流程。😊 ## 🎯 WinToast事件处理核心概念 WinToast事件处理

gitblog_00973的博客 825

BrowserQuest事件驱动架构:游戏逻辑与用户交互的解耦

你是否曾好奇,当你在游戏中移动角色、攻击怪物或与其他玩家聊天时,背后的代码是如何协同工作的?传统游戏开发中,逻辑与交互往往紧密耦合,导致代码难以维护。而BrowserQuest采用的事件驱动架构(Event-Driven Architecture, EDA)通过事件分发与处理,完美实现了游戏逻辑与用户交互的解耦。本文将深入剖析这一架构的实现原理,带你了解如何通过事件驱动让多人在线游戏(Multip...

gitblog_00841的博客 658

Medusa事件处理机制详解:实时数据更新与用户交互

Medusa是一个基于JavaFX的仪表盘组件库,提供了丰富的可视化组件和灵活的事件处理机制,帮助开发者构建响应式的用户界面。本文将深入解析Medusa的事件处理系统,包括事件类型、监听器接口以及如何实现实时数据更新与用户交互。 ## 核心事件类型与监听器接口 Medusa框架定义了三种核心事件类型,分别对应不同的功能场景: ### 1. UpdateEvent:实时数据更新事件 Upda

gitblog_01162的博客 897

React用户交互事件

React用户交互事件

810cheng 503

中山大学《数字信号处理》期末考试试卷(含答案).pdf

中山大学《数字信号处理》期末考试试卷(含答案)

上一篇: [LUA学习笔记03]LUA函数和C函数的相互调用
下一篇: [Delphi] 计算目录大小的函数,获得目录文件列表,计算文件的大小
mrtechno
博客等级 码龄21年 9粉丝 12原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值