-- 类型 和 值
--[[ 8中类型 滚动类nil、boolean、 number、string、userdata、
function、thread 和 table。]]

print (type("Hello World"))
print (type(10.4*3))
print (type(print))
print (type(print))
print (type(true))
print (type(nil))
print (type(type(x)))

--变量没有预定义的类型,每一个变量都可能包含任一种类型的值。
print ("++++++")
print (type(a))
a = 10
print (type(a))
a = "a string "
print (type(a))
a = print -- a 是变量
a(type(a)) --print(type(print))

--2.1 Nil 一个全局变量没有被赋值以前默认值为 nil;
--给全局变量负 nil 可以删除该变量。

--2.2 Booleans false ture lua只有false和nil是假的 所以lua 0和空都是真的

--2.3 Numbers 不多说

--2.4 Strings 指字符的序列 lua中字符串是不可以修改的 可以创建新的变量存放
print ("=========")
a= "one string"
b = string.gsub(a,"one","another")
print (a)
print (b)

-- lua 自动进行内存分配和释放,
-- 可以使用单引号或者双引号表示字符串
a= "a line"
b= 'another line'

--Lua 中的转义序列
--[[

\a bell
\b back space
\f form feed
\n newline
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\" double quote
\' single quote
-- 后退 -- 换页 -- 换行 -- 回车 -- 制表
-- "\" -- 双引号 -- 单引号
\[ left square bracket -- 左中括号
\] right square bracket -- 右中括号
]]
print('==========')

print ("one line\nnext line\n\"in quotes\", 'in quotes'")
--[[
输出

one line
next line
"in quotes", 'in quotes'
]]

print ('a backslash inside quotes: \'\\\'') --a backslash inside quotes: '\'
print("a simpler way: '\\'")--a simpler way: '\'

-- 在字符串中使用\ddd(ddd 为三位十进制数字)方式表示字母。

--使用[[...]]表示字符串 可以包含多行

page = [[
<HTML>
<HEAD>
<TITLE>An HTML Page</TITLE>
</HEAD>
<BODY>
Lua
[[a text between double brackets] ]
</BODY>
</HTML>
]]

io.write(page)

-- string 转化
print ("10"+1)--11
print ("10+1")--10+1
--print ("-5.3e - 10" * "2") ---1.06e-09
--print ("Hello" +1) --错

-- 数字转成 string
print (10 .. 20) --1020
-- ..在 Lua 中是字符串连接符,当在一个数字后面写..时,必须加上空格以防止被解释 错。
--[[
line = io.read()
n = tonumber(line)
if n == nil then
error (line .. "is not a valid number")
else
print (n*2)
end
]]

-- tostring() 将数字转成字符串
print ( tostring(10) == "10")
print (10 .. "" == "10")

-- 2.5 Functions
--[[

函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,
可以作为函数 的参数,也可以作为函数的返回值。

Lua 可以调用 lua 或者 C 实现的函数,Lua 所有标准库都是用 C 实现的。

]]

--2.6 Userdata and Threads
--[[
userdata 可以将 C 数据存放在 Lua 变量中,userdata 在 Lua 中除了赋值和相等比较外 没有预定义的操作。
userdata 用来描述应用程序或者使用 C 实现的库创建的新类型。

]]

--[[

Lua 中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、
函数调用。还可以是非传统的函数定义和表构造。

]]

--[[
上面例子的输出

string
number
function
function
boolean
nil
string
++++++
nil
number
string
function
=========
one string
another string
==========
one line
next line
"in quotes", 'in quotes'
a backslash inside quotes: '\'
a simpler way: '\'
<HTML>
<HEAD>
<TITLE>An HTML Page</TITLE>
</HEAD>
<BODY>
Lua
[[a text between double brackets] ]
</BODY>
</HTML>
11
10+1
1020
true
true

]]

lua 基础 2 类型和值的更多相关文章

  1. 《Python》 基础数据类型和for循环

    一.基础数据类型 总览 int:用于计算,计数,运算等.1.2.3.100... str:‘这些内容’,用于少量数据的存储,便于操作. bool:True,False,两种状态,机器反馈给用户的对,错 ...

  2. P4语法(1)基础数据类型和Header

    文章学习自:P4语言编程详解 由于原文有一点的年份,所以也继续阅读了相关的最新规范. P4语言规范 基础数据类型 布尔型(bool) 运算符 描述 and 双目运算符,结果为布尔型 or 双目运算符, ...

  3. mysql基础-数据类型和sql模式-学习之(三)

    0x01 mysql的两种方向: 开发DBA:数据库设计(E-R关系图).sql开发.内置函数.存储历程(存储过程和存储函数).触发器.时间调度器(event scheduler) 运维----> ...

  4. JS的类型和值

    1.类型 ECMAScript语言中所有的值都有一个对应的语言类型.ECMAScript语言类型包括Undefined.Null.Boolean.String.Number和Object. 对语言引擎 ...

  5. 02深入理解C指针之---指针类型和值

    该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 1.指针的类型: 可以在声明指针时,指定指针的类型,例如: (1)void *x  声 ...

  6. 函数----基础,参数传递,返回类型和return语句

    一.函数基础1.形参和实参 实参是形参的初始值.第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推.尽管实参与形参存在对应关系,但是并没有规定实参的求值顺序.编译器能以任意可行的顺序对实 ...

  7. 着重基础之—MySql Blob类型和Text类型

    着重基础之—MySql Blob类型和Text类型 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格 ...

  8. Lua 基础

    Lua 5.3 的中文手册, http://cloudwu.github.io/lua53doc 在线浏览 --第一部分 -- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释. -- ...

  9. AngularJs:String类型和JSON相互转换

    最近一周做了一个页面,制作的过程中遇到各种问题,从中可以看出本人的js基础还不够扎实,angularjs也只是刚入门的水平,现在将制作过程中遇到的问题一一汇总,方便以后查阅. 一.String类型和J ...

随机推荐

  1. Request 、Response 与Server的使用

    纯属记录总结,以下图片都是来自 ASP.NET笔记之 Request .Response 与Server的使用 Request Response Server 关于Server.MapPath 方法看 ...

  2. 初探Redis+Net在Windows环境下的使用

    Redis官网地址:https://redis.io/:Redis官方暂时不支持Windows环境,但是MicroSoft Open Tech group开发了一个Windows平台下运行的版本. R ...

  3. IDEA +maven+ ContextLoaderListener not find

    tomcat 启动失败:SEVERE: Context [] startup failed due to previous errors 查看pox.xml 有spring-web依赖 查看tomca ...

  4. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  5. swiper.animate~之~可以执行两种动画的升级版的Swiper Animate

        1.下载插件swiper.animate-twice.min.js,加载进页面. <!DOCTYPE html> <html> <head> ... < ...

  6. asp.net mvc中ViewData、ViewBag和TempData的详解

    一.ViewData和ViewBag 1.ViewData和ViewBag都是从Action向View传递数据的方式,当然还有其他方式如向View传递Model. 2.ViewData页面查询数据时需 ...

  7. http的一些事

    查找资料将http中缓存相关的知识记录下 一般来说:Last-Modifed和Expires是一对,ETag和Cache-Control是一对 Last-Modified Client端跟Server ...

  8. ubuntu-14.04服务器版下搭建apache2+svn+svnmanager服务

    本人linux小白,新进公司,被分配此任务,好崩溃,只能一边百度linux命令一边完成任务.从装系统开始一直到搭建好服务,也快一周了,足见水平之差,以下博文基本靠网络,再加上自己的摸索,直至搭建成功. ...

  9. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  10. delphi 环境问题

    这个编译时的警告该如何理解?[Warning] Unit 'Unit101' implicitly imported into package 'Package202'------解决方案------ ...