-- 类型 和 值
--[[ 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. HTML5 WEB SQL

    var database = openDatabase("student1", "1.0", "学生表", 1024 * 1024, fun ...

  2. php遍历目录

    function zx($dir){ if(is_dir($dir)){ $filesnames = scandir($dir); foreach ($filesnames as $name) { i ...

  3. Codeforces Round #383 (Div. 2) D 分组背包

    给出一群女孩的重量和颜值 和她们的朋友关系 现在有一个舞台 ab是朋友 bc是朋友 ac就是朋友 给出最大承重 可以邀请这些女孩来玩 对于每一个朋友团体 全邀请or邀请一个or不邀请 问能邀请的女孩的 ...

  4. HDU 5965 枚举模拟 + dp(?)

    ccpc合肥站的重现...一看就觉得是dp 然后强行搞出来一个转移方程 即 根据第i-1列的需求和i-1 i-2列的枚举摆放 可以得出i列摆放的种类..加了n多if语句...最后感觉怎么都能过了..然 ...

  5. 原来 laravel 路由 参数可以为可选。。。 很灵活

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码代码如下: Rout ...

  6. Thread-Safe Resource Manager

    http://php.net/manual/en/internals2.memory.tsrm.php When PHP is built with Thread Safety enabled, th ...

  7. js 事件大全

    Js事件大全一般事件 事件 浏览器支持 描述onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClick IE4|N4|O 鼠标双击事件onMouseDo ...

  8. numpy常用用法总结

    numpy 简介 numpy的存在使得python拥有强大的矩阵计算能力,不亚于matlab. 官方文档(https://docs.scipy.org/doc/numpy-dev/user/quick ...

  9. 用sublime写出的第一个网页

    STEP1 完成语义分析器 我用的vs2013 c语言写的 这个过程会在下一篇文章中详讲 准备好几个编译好的图,放在一个文件夹里,像下面这样 STEP2 规划好html的框架 上代码! (截图版) ( ...

  10. 《Linux及安全》实践2

    <Linux及安全>实践2 [edited by 5216lwr] 一.Linux基本内核模块 1.1理解什么是内核模块 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合. ...