博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua学习笔记(1)
阅读量:6592 次
发布时间:2019-06-24

本文共 838 字,大约阅读时间需要 2 分钟。

  最近在学Lua,看的是《Lua程序设计(第二版)》,似乎是唯一的中文资料了吧。且已经绝版,除了淘宝上能看到若干影印版外,其他的都找不到了。如果有朋友能找到正版的,请不吝相告

记录下初步的感受吧:

1.数据类型

  Lua只有:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)、table(表)这么几个类型。其中boolean的值为true/false(这不是废话吗),有意思地方在于,Lua将false跟nil视为假,也即是这两者之外都为真(不管是数值0,还是空字符串)。

2.运算符

  算术运算符、关系运算符与目前主流的开发语言没什么差异。逻辑运算符虽然写法略有差别(and、or、not),但是主要还是运算结果还是不一样的

  在C#/C++/java这些静态语言(也是主流语言)中,逻辑运算符的计算结果大都都是bool型,即为true/false。但是lua并不完全是。

  

a and b ----a若真,则返回 b

 

  这样的表达式下,返回了是整个对象(如果a跟b是对象的话)

  另外在Lua没有三元表达式,但是可以通过逻辑运算符来实现相似的功能

  

a and b or c ----要与三元表达式达到同样的效果,前提是b为真

 

  原因是如果a为真,而b为假了,那么返回的不是b,而是c了,这个跟三元表达式就不一致了。个人感觉三元表达式的内在思想是分支,而Lua的模拟通过的是运算。而分支跟运算的差异在前面说的情况下,差异一下子就出来了。所以如果要用这种方式来实现三元表达式,就必须清楚b的值了。替代的方案是..........if...else(额)

  另外Lua没有switch..所以,你懂的

 

转载于:https://www.cnblogs.com/haiyidao/archive/2012/10/25/2738007.html

你可能感兴趣的文章
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
查看>>
Maven依赖Scope标签用法
查看>>
ajax加载数据到页面无法打印的解决办法
查看>>
js 验证中文
查看>>
Linux下运行java DES AES加解密
查看>>
DataNode 运行状况
查看>>
牛津词典 2018 年度词汇 ——「有毒」!
查看>>
XIB的是用
查看>>
Learning Data Structure_2_线性表、栈和队列
查看>>
Android Arcface人脸识别sdk使用工具类
查看>>
android studio单个工程文件的代理设置
查看>>
Agent admitted failure to sign using the key
查看>>
grep 应用
查看>>
我的友情链接
查看>>
Linux实验室 CentOS关机大法
查看>>
一行命令获取当前JVM所有可设置的参数以及当前默认值
查看>>
spring与struts2 mvc共存web.xml简单配置
查看>>
Python web爬虫
查看>>
Python捕捉命令输出、错误输出及赋值命令到变量的方法
查看>>
详解性能调优命令
查看>>