热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不

变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。

变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不同的,因为Lua是区分大小写的。有八种基本类型值在Lua中:

在Lua,尽管我们没有变量的数据类型,我们基于该变量范围的三种类型。

全局变量:所有的变量默是全局除非显式地声明为局部。

局部变量:当类型被指定为局部的一个变量,它的范围是有限的在自己的范围内使用。

表字段:这是一种特殊类型的变量,可以除了nil,包括功能不放任何东西。

在Lua变量定义:

定义一个变量意味着告诉解释器在哪里和多少创建存储的变量。变量的定义有一个可选的类型和包含该类型,如下一个或多个变量的列表:

type variable_list;

在这里,类型是可选局部或nor型指定使其全局,variable_list可能包含由逗号分隔的一个或多个标识符名称。一些有效的声明是如下所示:

local    i, j

local    i

local    a,c

同一行 local i, j 均声明并定义了变量i和j;这指示解释器创建一个名为i, j 变量和限制的范围是局部的。

变量可以被初始化(分配一个初始值)声明。初始化包括一个等号后面的常量表达式如下:

type variable_list = value_list;

一些实例是:

local d , f = 5 ,10 --declaration of d and f as local variables.

d , f = 5, 10;      --declaration of d and f as global variables.

d, f = 10           --[[declaration of d and f as global variables.

Here value of f is nil --]]

对于没有初始化的定义:具有静态存储变量隐式初始化为nil。

在Lua声明变量:

正如上面的例子中看到,分配多个变量遵循variable_list和值表格式。在上面的例子中local d , f = 5 ,10,d和f中的值列表variable_list为5和10。

在Lua值设定发生像variable_list在第一个值和第一个变量值表等等。因此d 的值是5和f的值是10。

例子

试试下面的例子,其中变量都在上面被声明已经确定,主函数中初始化:

-- Variable definition:

local a, b

-- Initialization

a = 10

b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables

b, a = a, b

print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0

print("value of f", f)

当上述代码被构建和执行时,它会产生下列结果:

value of a: 10

value of b: 30

value of a: 30

value of b: 10

value of f 23.333333333333

Lua左值和右值:

在Lua有两种表达式:

左值:是指一个内存位置的表达式被称为“左值”的表达式。左值可能会出现无论是左边或右侧。

右值:术语右值指的是存储在内存中某个地址的数据值。右值是不能分配给它的值,这意味着一个右值可能会出现在赋值的右侧而不是左侧的表达式。

变量是左值,因此可能会出现在赋值左侧。数字文本是右值,因此可能无法分配的,不能出现在左侧。下面是一个有效的声明:

g = 20

但是,下面不是一个有效的声明,并会产生编译时错误:

10 = 20

在Lua编程语言中,除了上述类型的分配的,所以可以有多个左值和右值在相同的单一语句。它如下所示。

g,l = 20,30

在上面的语句中,20被分配给g和30被分配到l。



推荐阅读
  • C语言中全部可用的数学函数有哪些?2.longlabs(longn);求长整型数的绝对值。3.doublefabs(doublex);求实数的绝对值。4.doublefloor(d ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 单片机入门指南:基础理论与实践
    本文介绍了单片机的基础知识及其应用。单片机是一种将微处理器(类似于CPU)、存储器(类似硬盘和内存)以及多种输入输出接口集成在一块硅片上的微型计算机系统。通过详细解析其内部结构和功能,帮助初学者快速掌握单片机的基本原理和实际操作方法。 ... [详细]
  • 如何在Lua中调用C语言编译的动态链接库
    本文介绍了如何在Lua中调用C语言编译的动态链接库。通过详细步骤和示例代码,帮助开发者理解和掌握这一技术。参考了《Lua编程入门》一书中的相关内容,并结合实际操作经验,提供了更加清晰和实用的指导。此外,还探讨了在不同操作系统下编译和链接Lua的方法,为跨平台开发提供了有价值的参考。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 在工业过程控制系统中,由于被控对象的环境比较恶劣,干扰源比较多,仪器、仪表采集的信息常会受到干扰,所以在模拟系统中,为了消除干扰,常采用RC滤波电路,而在由工业控制计算机组成的自动 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • Redis客户端使用指南与学习笔记
    本书基于Redis 3.0版本编写,虽然与后续版本存在一些差异,但仍详细介绍了Redis服务器的一对多客户端连接机制。书中不仅涵盖了基本的安装配置和命令操作,还深入探讨了数据结构、持久化策略及性能优化等高级主题,适合初学者和进阶用户参考学习。 ... [详细]
author-avatar
手机用户2502926207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有