-- 类型 和 值
--[[ 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. Unity3D的四种坐标系

    [Unity3D的四种坐标系] 1.World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的.transform.position可以获得该位置坐标. ...

  2. Java中的递归运算

    Java中的递归运算是一种在自己的方法内部调用自己的方法 递归的设计思想是:把一个复杂的问题,分解为若干个等同的子问题,重复执行,直到之问题能够简单到直接求解,这样复杂的问题就得以解决. 递归运算有两 ...

  3. CentOS下设置默认JDK

    最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/alternatives/java查看,发现指向的是jre目录,而不是jdk,在此设置指向jdk目录. 1. 设 ...

  4. LWL-Hitokoto API(一言-纯净API)

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:liwanglin12链接:https://blog.lwl12.com/read/hitokoto-api.html来源:L ...

  5. ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题

    注意scrollView左右滑动时不要刷新数据,刚进来时一次性请求所有数据 红包纪录和房源信息可以左右滑动和点击,tableView可以上下滑动,图片部分个人信息只刷新一次. 界面布局如下

  6. goaccess的安装和使用

    一.简介1.goaccess用于分析apache和nginx日志的强大工具 2.官网:https://goaccess.io 二.安装1.下载goaccess的安装包wget http://tar.g ...

  7. CACHE COHERENCE AND THE MESI PROTOCOL

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In contemporary multi ...

  8. C++求一个十进制的二进制中1的个数

    int oneNumInBinary(int n){ ; while(n){ n = n&(n-); cnt++; } return cnt; }

  9. Oracle merge into

    Oracle中Merge into用法总结 文件来源:(http://blog.csdn.net/yuzhic/article/details/1896878) 有一个表T,有两个字段a.b,我们想在 ...

  10. Python学习笔记(一)python基础与函数

    1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world > ...