[lua]紫猫lua教程-命令宝典-L1-01-02. 变量
L1[变量]01. 变量命名规则
命名规则:数字字母下划线构成 但是不能数字开头 不推荐中文名 很多都是不支持中文 但是在一些其他的编辑器里面 比如触摸精灵 之类的 就可以
注意 :变量命名必须要包含一定涵义 比如我们要用变量存储一个年龄数值 比如我们用 x=18 别人看我们的源码 看到这里 她不明白 X这个变量为18代表什么意思 如果我们用age=18 那么他一看就明白了 方便我们自己 也方便他人 这个是一个良好的习惯 值得培养
注意 变量名区分大小写
注意:变量名有一些系统保留字 不要占用这些保留字 比如Lua本身的一些语句 if else end function
注意:如果规范一点 我们可以针对 全局变量和局部变量 我们最好区分写法 比如全局变量 p_x=14 p就是public 的缩写 局部变量 l_y l就是local的缩写 不过实际情况下 代码很少 不必如此
小知识:紫猫老师的lua版本是lua5.3 教程的一些代码都是以此为基础
切换办法
zeroBrane Studio 里面 项目--lua解释器—lua5.3
L1[变量]02. Lua语句块特性
小知识:光标容易出现变为插入模式的情况
只是因为 小键盘的0也是insert按键 小键盘模式切换错了 点0变成了点击insert 导致光标变成insert
这里老师稍稍提了下 定义了一个变量 trceprint 然后trceprint =print 然后 trceprint 就具备了print函数的功能和属性 其实这是后面要讲到的 lua下 函数也是Lua的一种数据类型 函数可以当作普通变量来进行随意的赋值比如x=10 这个x是整数型的 x=”test” 这个x是字符串 但是如果x=print 这个x是数据类型中的函数型 是可以这么用的 因为lua下的函数的理解是很特别的
小知识:lua下的多行代码写到一行的写法
按照常见的其他语言的规范 一般都是如此
age=15;print(age);address=”山东”;print(address) 以分号为间隔 把多行写为一行 这也是最规范最常用的写法
但是lua可以 多行代码之间无需任何间隔 lua会自动判断和解析 一样没什么大问题 有问题的话 间隔变为一个空格
结论:了解有这种写法把 但是对于代码阅读是一个非常恶劣的习惯 建议还是分号分隔即可
L1[变量]03. 单行注释与多行注释技巧
注释没什么可说的
注释的作用:让自己看懂自己的代码或者是别人看懂你的代码结构思路
就算是你自己亲手花了很多功夫写的项目代码 如果间隔1个月 或者2个月 你再看这些代码 很多东西就会想不起来 当时如此写的思路 很多项目不是一锤子买卖 可能后面需要调整某些模块 增加一些新的模块 或者客户有其他额外要求 一旦时间过长 忘了当时的代码思路 对于我们自己对于客户都是无法接受的损失 所以随手写注释的习惯还是值得培养的
多行注释:
--[[
XXXX
--]]
单行注释:
--XXXXXX
个人理解下的常见注释和写代码时候注释的插入(仅供参考而且只是在大项目中用的多点)
1. 和客户交流 分析出脚本的运行的基本流程和思路
2.在代码开头列出当前脚本的基本流程
3 然后根据这几个大体的步骤 填充上对应的函数
--[[
功能:实现XXapp的日常签到功能
1.读取账号信息
2.尝试登录
3.登录成功进行签到操作
4.退出账号
5.异常处理和信息反馈
--]] --1.读取账号信息
readaccount()
--2.尝试登录
logApp()
--3.登录成功进行签到操作
signApp()
--4.退出账号
quitApp()
--5.异常处理和信息反馈
errorApp()
4 完善对应的函数和主体结构
完善函数依然也是这套步骤 先写出功能和大体步骤 然后把步骤散步到代码里面等待进一步的填充和细化
--[[
功能:负责读取对应账号信息
1.确定账号文件
2.确定读取账号行数
3.读取到账号和密码 并进行简单判定是否合法
4.不合法或者其他异常 函数返回空字符串 合法 返回 账号密码对字符串
--]]
function readaccount() --1.确定账号文件
--1--1 如果不存在该文件 则无需执行后续操作 函数返回空字符串 --2.确定读取账号行数 --3.读取到账号和密码 并进行简单判定是否合法 --4.不合法 函数返回空字符串 合法 返回 账号密码对字符串 end
注释在整体结构上的使用就是如此 还有一些零散的注释应用就随便了 比如一般都和本行在同一行
print("readaccount") --测试是否执行到readaccount函数
如果是对一部分代码进行注释 也可以写到这些代码的上面 这个根据情况而定
小技巧:快速让多行注释失效
---[[
XXX
XXX
--]]
L1[变量]04. 什么是变量
没什么说的 变量的基本概念
不过我记得以前全局变量 局部变量的作用域是有点折腾 等后面看看老师是否讲到这部分了
L1[变量]05. 数据类型之nil
nil类型的值只有1个值 nil
变量如果没有赋值 那么他的值都是nil
L1[变量]06. 数据类型之数字与字符串
数值型 整数 负数 小数 都算数值型的
字符串型
以双引号单引号 或者[[ ]]包围的都算字符串 而且注意[[ ]]可以把内部的内容预格式化 对我们一些复杂字符串而言作用很大
小知识:复杂字符串的赋值[[ ]]
会把复杂的字符串内容原封不动的输出出来 不需要我们预先对字符串里面的某些字符转义或者其他预处理 还是很好的
随手提一下 还是等老师后面详细讲讲把
数据类型的强制转化 tostring() tonumber() 等等
获取当前数据类型 ---type函数‘
判断是否是某个数据类型--还是用type函数也可以判断
L1[变量]07. 数据类型之布尔与其他类型
除了false和nil对应false 其他的都是true 没了
还粗略的讲了一下8种数据类型 也没什么 后面会详细说
123
[lua]紫猫lua教程-命令宝典-L1-01-02. 变量的更多相关文章
- [lua]紫猫lua教程-命令宝典-L1-01-03. 数值数据
lua5.3在线手册地址 https://cloudwu.github.io/lua53doc/contents.html#contents 其实我们直接啃手册就够了 推荐如果有基础的先啃手册再看紫 ...
- [lua]紫猫lua教程-命令宝典-L1-01-01. Lua环境与IDE
网上大把的lua教程 不过紫猫老师的教程向来都是讲的非常仔细 所以最近天气已经36+了 魔兽世界还需要冲飞行声望 懒得写单子根本没有单子,正好认认真真的看下紫猫老师的lua教程 紫猫老师的lua教 ...
- [lua]紫猫lua教程-命令宝典-L1-01-04. 字符串数据
L1[字符串]01. 单引号与双引号 没什么说得 字符串:以双引号包含 或者单引号包含 或者[[]]包含 L1[字符串]02. 长文本内容 小知识:如果用[[]]包含字符串内容 但是字符串内容里面 包 ...
- [lua]紫猫lua教程-命令宝典-L1-01-10. 自定义函数
L1[function]01. 定义与调用函数 函数的定义 和概念 没什么可说的 lua的函数声明和调用是有先后顺序的 先声明后调用 函数就是变量的一种 所以可以自由的把函数在变量间相互赋值 不过注 ...
- [lua]紫猫lua教程-命令宝典-L1-01-09. string字符串函数库
L1[string]01. ASCII码互转 小知识:字符串处理的几个共同的几点 1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用 2.所 ...
- [lua]紫猫lua教程-命令宝典-L1-01-08. math数学函数库
L1[math]01. 取绝对值 L1[math]02. 三角函数 小知识:注意 lua下三角函数用的参数是弧度 而不是角度 弧度=角度*pi/180 -->弧度角度换算公式 lua的mat ...
- [lua]紫猫lua教程-命令宝典-L1-01-07. table表
L1[table]01. table表的定义与赋值 小知识:声明表的例子 xx={}--创建一个空表xx --给这表的元素赋值 test="a" xx[test]="a& ...
- [lua]紫猫lua教程-命令宝典-L1-01-06. 循环结构
L1[循环]01. for循环结构介绍 只是简单的说了下计数型的for循环结构 for i=1,10,1 do testlib.traceprint(i) end 注意几点: 1.上面的1和10表示循 ...
- [lua]紫猫lua教程-命令宝典-L1-01-05. if判断结构
L1[if]01. 简单的if判断结构 没什么说得 if得基本结构如下 xxx= ) then testlib.traceprint("1-100") ) then testlib ...
随机推荐
- luogu P2158 [SDOI2008]仪仗队 (欧拉函数)
欧拉函数裸题 可惜我太久没做题忘了欧拉函数是什么了... 注意判断一下n = 1的情况就好了 #include <cstdio> using namespace std; ; typede ...
- [SDOI2006] 仓库管理员的烦恼 - 二分图最大权匹配
最小化代价,即最大化"本土"货物的数量 于是就是个二分图最大权匹配裸题 #include <bits/stdc++.h> using namespace std; #d ...
- 静态区间第k小 - 整体二分
蒟蒻终于学会整体二分啦! 思路 实现 丑陋无比的代码 #include <bits/stdc++.h> using namespace std; const int N = 200005; ...
- Hbase出现ServerNotRunningYetException的解决方案(退出hadoop的安全模式)
退出安全模式 ./hadoop dfsadmin -safemode leave 然后出现 safemode off就成功了
- MySQL主键设计盘点
目录 主键定义 主键设计和应用原则 主键生成策略 自增ID UUID 自建的id生成器 Twitter的snowflake算法 @ 最近在项目中用了UUID的方式生成主键,一开始只是想把这种UUID的 ...
- Response与ServletContext对象
HTTP协议: 请求消息:客户端发送给服务器端的数据 数据格式: 请求行: 格式: 请求方式 请求url 请求协议/版本 请求头:告诉服务器,当前访问的浏览器自身的一些信息 格式: 请求头名称: 请求 ...
- 文本中自动出现的 ​
文本中自动出现的 ​ 所借鉴原页面地址:https://blog.csdn.net/judyc/article/details/53097142 因判断容器内字符长度来做其它处理 ...
- ubuntu apt 换源
修改配置文件/etc/apt/sources.list 内容替换为 阿里镜像源 deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted ...
- VB断点拷贝大文件(WIN7系统需要更改某个API函数,具体我也忘了)
小弟以前租碟在电脑上看VCD,有时候拷贝经典的影片到硬盘上可惜碰到比较粗糙的碟子就很难拷贝过去,因此编了个断点拷贝文件的程序.本程序用于拷贝大文件,并可在旧文件上接着拷贝本程序能在无法读取数据的情况下 ...
- 动态规划(Dynamic Programming, DP)---- 最大连续子序列和
动态规划(Dynamic Programming, DP)是一种用来解决一类最优化问题的算法思想,简单来使,动态规划是将一个复杂的问题分解成若干个子问题,或者说若干个阶段,下一个阶段通过上一个阶段的结 ...