lua基础知识

2017-08-08  本文已影响0人  小菜c

¥开启¥

【基础-循环之while循环】

〖2017-08-15 23:22:33〗

《当天条件为真时(true)时€while(true) do€print("将会永远循环下去")€end€a=100€while(a=100) do€print("将会永远循环下去")€end€€就是这么简单€》

『小菜』

〔Lua基础知识〕

【基础-循环之for循环】

〖2017-08-15 23:23:09〗

《lua有两种循环(在我的认知里)

这篇讲for循环,我们常用的€看个例子€for n=1,100 do€print(1)€end€他将会打印100遍1€€就是这么简单€》

『小菜』

〔Lua基础知识〕

【基础-赋值语句】

〖2017-08-15 23:25:12〗

《a="我是".."帅哥"€这句等于€a="我是帅哥"€€也可以同时对多个赋值例如€a,b="这是a","这是b"€这句等于€a="这是a"€b="这是b"€这不是全部,但都是我们会经常用到的€》

『小菜』

〔Lua基础知识〕

【基础-变量】

〖2017-08-15 23:26:47〗

《lua的变量默认全局变量€例如 a=5€这就是一个全局变量,哪怕是在函数封装等€申明一个局部变量,加个local€€例如在一个函数封装里(这里你不需要懂,以后会讲)€€局部变量=function()€local a=5€print(a)€end€print(a)€€这就是一个局部变量,第一个会打印出5€第二个就是nil€因为局部变量,以一个代码块的end为结束》

『小菜』

〔Lua基础知识〕

【基础-布尔值数据类型详解】

〖2017-08-15 23:29:25〗

《这个东西只有两种€true真 这里指,某种条件成立€false假  这里指,某种条件不成立€就像做算式一样€5不可能等于3€我们用lua的语法来打印一下€€print(5=3)€屏幕会返回false€因为5根本不可能会等于3!!!€€反之我们来打印一下print(3=3)€返回什么,不用说了吧€》

『小菜』

〔Lua基础知识〕

【基础-nill数据类型详解】

〖2017-08-15 23:30:10〗

《nil就是空€空就是没有€例如我们凭空打印一个a  €print(a)€屏幕会提示nil€因为这里的a根本不存在€nil还可以销毁一个变量€例如 €a=5€a=nil€print(a)屏幕会提示nil€因为a已经被销毁了,已经没有了》

『小菜』

〔Lua基础知识〕

【基础-number数据类型详解】

〖2017-08-15 23:51:02〗

《lua里面只有一种number类型€并没有java中的float的类型€€例如€€a=5€这就是一个number赋值€基础-常用数据类型€布尔值  只有两种€true    false€€数值  number€print(5)--提示  5€字符串 string

print("5")--提示 5  这里的5跟上面的5不一样,字符串不能跟数值比较!!!(具体下节讲)€€空值 nil€€print(a)--打印一个没有任何值的赋值,会提示nil€€这就是lua几种常见的数据类型€》

『小菜』

〔Lua基础知识〕

【基础-关键词】

〖2017-08-15:23:33〗

《关键词的意思就是€你不能用这些词语来赋值变量了€以下是lua所有关键词€€and      break     do      else    elseif  end      false€for      function  if      in      local    nil       not

or       repeat    return then    true    until    while €》

『小菜』

〔Lua基础知识〕

【基础-代码注释】

〖2017-08-15 23:34:45〗

《id.onClick=function()€€end€––以end结束》

『小菜』

〔Lua基础知识〕

【基础-点击事件】

〖2017:23:56:59〗

《id.onClick=function()€––事件

end€––以end结束》

『小菜』

〔Lua基础知识〕

【 基础-print打印】

〖201-08-15 23:37〗

《pprint("hello word")––完整版€print"hello word"––简化版€a="hello word"––一个变量€print(a)––打印€》

『小菜』

〔Lua基础知识〕

【打印】

〖2017-08-16 17:37:56〗

《打印€print"Hello World!"€print("Hello World")》

『小菜』

〔Lua基础知识〕

【注释】

〖2017-08-16 17:38:12〗

《注释€单行注释  --€多行注释  --[[]]》

『小菜』

〔Lua基础知识〕

【字符串】

〖2017-08-16 17:37:43〗

《字符串€a="String"€a=[[String]]€a=[===[String]===]》

『小菜』

〔Lua基础知识〕

【赋值】

〖2017-08-16 17:40:50〗

《赋值€a="Hello World"€€--lua支持多重赋值€a,b="String a","String b"€€--交换值€a,b="String a","String b"€a,b=b,a》

『小菜』

〔Lua基础知识〕

【类型简介】

〖2017-08-16 17:41:38〗

《类型简介€Lua 存在的数据类型包括:€1.nil€此类型只有一个值 nil。用于表示“空”值。全局变量默认为 nil,删除一个已经赋值的全局变量只需要将其赋值为 nil(对比JavaScript,赋值 null 并不能完全删除对象的属性,属性还存在,值为 null)€€2.boolean€此类型有两个值 true 和 false。在 Lua 中,false 和 nil 都表示条件假,其他值都表示条件真(区别于 C/C++ 等语言的是,0 是真)€€3.number€双精浮点数(IEEE 754 标准),Lua 没有整数类型€€4.string€你可以保存任意的二进制数据到字符串中(包括 0)。字符串中的字符是不可以改变的(需要改变时,你只能创建一个新的字符串)。获取字符串的长度,可以使用 # 操作符(长度操作符)。例如:print(#”hello”)。字符串可以使用单引号,也可以使用双引号包裹,对于多行的字符串还可以使用 [[ 和 ]] 包裹。字符串中可以使用转义字符,例如 \n \r 等。使用 [[ 和 ]] 包裹的字符串中的转义字符不会被转义€€5.userdata€用于保存任意的 C 数据。userdata 只能支持赋值操作和比较测试€€6.function€函数是第一类值(first-class value),我们能够像使用其他变量一样的使用函数(函数能够保存在变量中,可以作为参数传递给函数)€€7.thread€区别于我们常常说的系统级线程€€8.table€被实现为关联数组(associative arrays),可以通过任何值来进行索引(nil 除外)。和全局变量一样,table 中未赋值的域为 nil,删除一个域只需要将其赋值为 nil(实际上,全局变量就是被放置在一个 table 中)€€type 函数用于返回值的类型:€print(type("Hello World")) --> string€print(type(10.4*3)) -->number€print(type(print))  ->function€print(type(type(X)))  --> string€》

『小菜』

〔Lua基础知识〕

【if(判断语句)】

〖2017-08-16 17:44:52〗

《if(判断语句)€--判断值是否为真€a=true€if a then€print("真")€else€print("假")€end€--比较值是否相同€a=true€b=false€if a==b then€print("真")€else€print("假")€end》

『小菜』

〔Lua基础知识〕

【function(函数)】

〖2017-08-16 17:46:16〗

《function(函数)€函数有两个用途€1.完成指定功能,函数作为调用语句使用€2.计算并返回值,函数作为赋值语句的表达式使用€€€实例1:€function 读取文件(路径)€文件内容=io.open(路径):read("*a")€return 文件内容--return用来返回值€end€€€€实例2:€require "import"€import "android.widget.EditText"€import "android.widget.LinearLayout"€function 编辑框()€return EditText(activity)€end€layout={€LinearLayout;€id="父布局",€{编辑框,€id="edit",€text="文本",€},€};€activity.setContentView(loadlayout(layout))€--把这段代码放到调试里面去测试€》

『小菜』

〔Lua基础知识〕

【 基础代码】

〖2017-08-16 17:49:32〗

《基础代码€activity.setTitle('Title')--设置窗口标题€activity.setContentView(loadlayout(layout))--设置窗口视图€activity.setTheme(android.R.style.Theme_DeviceDefault_Light)--设置主题€activity.getWidth()--获取屏幕宽€activity.getHeight()--获取屏幕高€activity.newActivity("main")--跳转页面€activity.finish()--关闭当前页面€activity.recreate()--重构activity€os.exit()--结束程序€tostring()--转换字符串€tonumber()--转换数字€tointeger()--转换整数€--线程€--thread€thread(function()print"线程"end)€--task€task(function()print"线程"end)€》

『小菜』

〔Lua基础知识〕

【While循环】

〖2017-08-16 17:51:49〗

《While循环€--只要条件为真便会一直循环下去€€--输出1到10€a=0€while a~=10 do€a=a+1€print(a)€end€€--输出10到1€a=11€while a~=1 do€a=a-1€print(a)€end€€--打印数组a中的所有值€shuzu={"a","b","c","d"}€a=0€while a~=#shuzu do€a=a+1€print(shuzu[a])€end€》

『小菜』

〔Lua基础知识〕

【for循环】

〖2017-08-16 17:53:24〗

《For循环€--给定条件进行循环€€--输出从1到10€for i=1,10 do€print(i)€end€€--输出从10到1€for i=10,1,-1 do€print(i)€end€€--打印数组a中所有的值€a={"a","b","c","d"}€for index,content in pairs(a) do€print(content)€end€》

『小菜』

〔Lua基础知识〕

【比较操作符】

〖2017-08-16 17:54:10〗

《比较操作符€--Lua 支持下列比较操作符:€€==: 等于€~=: 不等于€<: 小于€>: 大于€<=: 小于等于€>=: 大于等于€这些操作的结果不是 false就是 true。€》

『小菜』

〔Lua基础知识〕

【Table(数组)】

〖2017-08-16 17:55:23〗

《Table(数组)€table是lua唯一的数据结构。€table是lua中最重要的数据类型。 €table类似于 python 中的字典。€table只能通过构造式来创建。其他语言提供的其他数据结构如array、list等等,lua都是通过table来实现的。€table非常实用,可以用在不同的情景下。最常用的方式就是把table当成其他语言的数组。€€实例1:€mytable = {}€for index = 1, 100 do€mytable[index] = math.random(1,1000)€end€€说明:€1.数组不必事先定义大小,可动态增长。€2.创建包含100个元素的table,每个元素随机赋1-1000之间的值。€3.可以通过mytable[x]访问任意元素,x表示索引。€4.索引从1开始。€€实例2:€tab = { a = 10, b = 20, c = 30, d = 'www.jb51.net' }€print(tab["a"]) €€说明:€1.table 中的每项要求是 key = value 的形式。€2.key 只能是字符串, 这里的 a, b, c, d 都是字符串,但是不能加上引号。€3.通过 key 来访问 table 的值,这时候, a 必须加上引号。€€实例3:€tab = { 10, s = 'abc', 11, 12, 13 } €print(tab[1]) = 10€print(tab[2]) = 11€print(tab[3]) = 12€print(tab[4]) = 13€说明:€1.数标从1开始。€2.省略key,会自动以1开始编号,并跳过设置过的key。€》

『小菜』

〔Lua基础知识〕

上一篇下一篇

猜你喜欢

热点阅读