-- 类型 和 值
--[[ 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. VerifyCodeUtil.java

    package com.vcredit.framework.utils; import java.awt.Color;import java.awt.Font;import java.awt.Grap ...

  2. 安卓中級教程(7):annotation中的 public @interface的用法

    package com.example.ele_me.util; import java.lang.annotation.Retention; import java.lang.annotation. ...

  3. 关于iis8.5中发布的网站无法连接数据库的解决方案。

    发布的网站在浏览时出现如下提示: “/”应用程序中的服务器错误. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL ...

  4. 百度编辑器ueditor 的 submit 表单提交

    页面中表单提交代码: <input type="submit" name="Submit" value="修改保存"> 提交的结 ...

  5. pdf.js pdfdom.js使用(转)

    开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是这个想法,说干就干,实践过程总是艰难的,折腾了3 ...

  6. Git和Github简单教程(转)

    这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...

  7. H5 FormData对象的使用

    XMLHttpRequest Level2 添加了一个新的接口--FormData .[ 主要用于发送表单数据,但也可以独立使用于传输键控数据.与普通的Ajax相比,它能异步上传二进制文件 ] 利用F ...

  8. 游记——noip2016

    2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...

  9. Jesse Livermore的21句投机至理名言

    1.优秀的投机家们总是在等待,总是有耐心,等待着市场证实他们的判断.要记住,在市场本身的表现证实你的看法之前,不要完全相信你的判断.        2.要想在投机中赚到钱,就得买卖一开始就表现出利润的 ...

  10. CSS实现单行、多行文本溢出显示省略号(…)

    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...