00:00
好,同学们,接下来呢,我们学习一下撸啊的基础语法啊,如果你会的话,这个环节呢就可以跳过了,我们在这个呃,它这个LPD里边去学习,嗯,在这儿啊先新建一个项目,如果你用过Java的话,这呢变成就叫lua project是吧。然后project这起个名字叫叉。下边呢类似和我们选JDK一样,这呢选Lu的版本,这是5.1,默认呢,我们就用5.1就可以了。然后接下来一个finish,然后他把项目就创建出来了,并且给我们创建出来了一个。闷文件,呃,这个。字体呢,稍微小了一点。给它改大一点。这儿就大了一点。再大一点。
01:06
To the trip。好,就这么着,呃,我们先看一下,这是一个它的这个嫩函数啊,这就是我们在学Java的时候,它对应的那个,呃,嫩方法,Public string是吧,Avoid。然后这个。这个里边传这个argument是吧,在这儿呢,它这个是最简单的一个慢方法,它定义一个呃函数的时候呢,它是这这么定义的,首先定义它的这个作用域,就是local,然后function,然后后边呃写这个方法名,然后这接括号,括号里边是可以接参的,现在呢,没接餐在中间的这一步区域呢,就是我们的呃写代码的地儿,然后end说明这么一个function式呢,就定义完成了下边这个main括号,这是去调用这个main方法啊。
02:00
这就是他的这个写一个最简单程序的基本结构,然后在这儿呢,我给大家呃,准备了一些代码应例,我就不带着大家一个一个敲了,这样挺没有意义的,我们带着大家过一遍,基本的这语法呢,你也差不多能了解了,首先我们先看第一个啊,先写一个hello word print。Print是系统内置的方法,不,不能叫方法在这啊,叫函数内置函数,它会调取这个,呃,终端去打印,打印一些信息,我们可以传个字符串进去,Hello word,然后在这儿呢,保存,然后在这。Run us。Application。然后hello word就给我们打出来了,这是第一个啊,我们先打一个hello word。呃,然后我们接着看呢,它有一些保留的关键字,有有哪些不能作为我们的变量去起名字。呃,比如说end break do else l if end force等等等等,这些跟Java很像,基本觉得差不太多。
03:04
啊,有过编程经验的同学呢,不会犯这么低级的错误啊。然后这个注释呢,有这么几种方式可以去实现,第一个呢,就是两个减号。这就变注释了,这一行单行注释,然后还有就是多行注释,两个减号后边跟两个大括号。在这中间呢,全都是注释,它还可以换行,因为你这个两个减号是没法换行的嘛,对吧,这是注释,这也很简单。然后对于变量来说呢,呃,Nova的这个呃,可用的这种数据类型呢,比较少啊,就字符串和这个基本的数字类型,然后他在内部呢,会帮我们去转型,你比如说这个呃撸啊,对于数字的这种描述呢,它基本上呢没什么可选的,就只有这个double。啊,并且它是64位的啊,你可以起一个电量名称,比如number等于1024等于3.0等于三点什么的科学计数法,然后这个带小数点的,然后16进制的什么都可以,反正你只要给他,然后他就能接受它是弱类型的,呃,在执行的过程当中呢,才知道这个具体我们这个。
04:15
呃,这个数字它是什么类型的啊,这是数字类型,然后字符串呢。嗯。其实和Java差不多,它多了一这它多了一点就是呃,对于一个长字符串呢,它可以用两个括号去描述,比如这这样诶。诶,你看。两个括号,两个括号,它这个中间呢,它可以换行,然后把它打印出来,你看看print。这个A。啊,它这个换行呢,也给我们打印出来了,这相当于在。呃,我们我们给变量赋值的时候呢,用两个括号可以包住它的这个原始值,你不管写啥,你写一双引号,它也不会去认为这是一个,呃,这个变量我需要把它给引起这个这个引起来啊,相当于这个原始的,呃,文本的这种输出啊,多行文本输出。
05:14
然后对于空值来说呢,这里边是new n和这个很多其他语言,比如说Swift,呃,就是那个iOS上开发那个Swift里边就是这个new,对吧。啊,这相当于这个C语言里的这个no了啊,就是空值。那么bird类型呢,我们看啊,呃,这个表示false的呢,可以用false或者是空值啊,New这也是表示false,都可以去做判断处呢,呃数字数字零呢,这就基本上就代表处了啊,或者这个空的字符串斜杠零,这也是处。然后对于作用浴来说呢,嗯。因为代码比较简单啊,不会包含太多这种呃,上下文的这种环境。基本上就在这代码里边标记local的,就是内部的,呃,这种变量啊,然后除此之外呢,全都是全局变量,就是在任何地呢。
06:09
都可以去调用。然后这个再看看这负循环。我们把这粘过来吧,省得敲了。啊,这是定义一个变量I,它等于零,这表明它是一个数字啊,数字0MAX10啊,从零到十,我去循环一下,这儿的循环呢,就是well I小于等于max,然后do就是well do这种方式去做循环,然后print这个I,然后I呢再加一。泡一下。然后这个循环呢,就跑出来了,对吧,一二三四五六七八九十啊,这也是很简单,重点是熟悉一下,然后if else,我们把它再看一下。
07:12
啊,大家看啊,定立定义一个age啊,这么一个变量一百四是吧,140岁了,够能活的,然后sex啊ma。然后这开始判断if age等于40AND sex等于more then,然后男人41朵花,Else if就是if和。呃。这个if所匹配上这种输出呢,靠的是if z啊,也有很多其他语言,你像这个。嗯,这个这个这个ASP啊,那里边呢,就是E对吧,就是这个写的很多的脚,其他的脚本语言也都是vbscript这一这一类的语气都是这个。If啊,Then的后边表示匹配上之后呢,按照它去输出多条件判断呢,中间可以去加and,中间的不需要加这个括号,你就写Java的话,写javascript就是C语系的语法,If后边得跟括号,这是这个vbscript的这一这一系的。
08:14
然后if else if,然后还可以在else,然后最后给他来一个兜地的,就上边全都没匹配上,然后最后呢,呃,有一个总的这个这个这个这个呃,逻辑能够把它给匹配住,最后输出这东西就是前面都没匹配上。嗯,这多了一个and,然后我们跑一下看看效果。现在是A只是一百四啊。然后提示欧特曼啊这个。嗯,欧特曼是因为它大于60了啊。就是不等于啊,不等于非某。然后再给他,嗯,改成30。它不是40,并且它不大于60,并它不小于20,对吧,正好在青黄不接的这个愣头青的年代,所以到了这个最后的else you age is,直接把这个给打出来了,注意看这个print在这儿。
09:14
打印变量的时候呢,想要和前面的字符串相连接的话呢,用了这么一个东西叫点点,有可能刚才你没注意到对吧,不能直接在后边跟加号,呃,在罗亚语言里边,字符串和变量相连的话,呃,用点点会把后边的这个变量呢给它转成这个字符串,并且和前面的字符串呢连接到一起,然后同时去给它给打出来。嗯,然后你就40。会怎么样?是男人41朵花啊,到这儿了,对吧。然后比如我才18岁。图样图森透啊。这是一。嗯,再看看这么一个for的循环。
10:05
刚才呢,那是while循环是吧。呃,我们在这整一个变量啊,这没没标记logo,这就是全局变量啊,然后这是零,然后负I等于100,然后一,然后减二,你看度接下来效果是啥。哦,这好像。没给他打出来是吧,打一下。呃。这这个把每一个都打出来了,直接在这在外边打这个sum。2550这个上面写的呢,好像看起来有点不太好读,其实跟正常的for循环一样,就起起步啊,是I等于100,然后接下来呢,我想让它达到是一,如果你反过来写的话,就是I等于一,I小于100,然后I加加对吧。
11:13
这是I等于100,然后I小,这个I小于一,然后I减二啊这这么一种写法,然后最后呢,把它全都给加到一起啊,就是100,然后加,然后加加这个98,加这个96,全都加到一块儿,然后这么一个。呃,相加最后得到这个2550啊。这是这个for循环,当然你也可以正着写对吧,A等于一,然后A小于100,然后A加二,其实是一样的,你看啊,你再反过来。I等于一。然后I等于100,然后加二。加加就是加一啊,这是加二。
12:01
个加二啊,你没必要在这写这个加二,就直接写一个二,你把这个你看啊,这这么看起来呢,就不知道咋回事,对吧,I小于1II等于1I小于100I加二,这是2550嘛,你看我们跑一下。嗯,这么看啊,这个数好像跟刚才对不上是吧?啊,那是因为它这个。我们把它改成零就可以了,少加了这个一次,那是从一一加二等于三了,对吧,然后这是从零开始,零加二等于二。少率次循环,你就改成零啊,这样就对了,反过来啊,这是这是从100变成一啊,这是从零到100啊,这个逻辑咱们稍微的。体会一下就就可以了,我不解释了,然后还有就是函数,我们可以去自定义函数,这个自定义函数的话,前面加就是function,跟写javascript似的。然后函数里边呢,可以接收参数,我们看。
13:00
诶,这没换行是吧。一下。这样就对了,来看啊,这个上面这一堆呢,是定了定义了一个呃,Function,一个函数叫my power。然后XY,然后return X加Y或者Y加X啊一样,End,这是在main函数里边又定义了一个函数,这函数套函数了。然后POWER2呢,等于买power传一个二传一个三,然后print这个POWER2这个值是啥?或者直接把这个给它给扔到这个print里也可以。对。二加三等于五啊,这就定一个最简单的。相加这么一个函数。然后这儿呢,有一个稍微复杂一点的。你看这个。
14:00
呃,Function,一个new counter,然后在这里边一个内部的局部变量I等于零。然后这呢,可以直接return一个这个匿名的,呃,这么一个函数啊,把这个。函数整个的执行结果全部都给它给全部都给它return回去啊。这个function里呢,没有名字,所以是匿名的,然后I等于I加一,相当于把这个local的这个I给它给执行一次加一操作,然后呢再给它return回去啊,Return最后的结果想想也是第一次是零,然后加一,第二第第第二次就是一啊,然后345。最后按的。然后这呢,C啊,等于new counter相当于。我去先调用一下这个函数,然后执行三次这个函数啊,然后我们先看看效果。啊,这里边儿呢,这个内部的变量,由于它调调用过一次,所以它会累积相加啊,相当于就是调一次调用方法。
15:07
123啊,这里边儿有累加的啊,这么一个效果,相当于静态的这个变量了啊。然后我们再看这个返回值,这个也是比较有特色的啊,我们在这儿看了,它可以return函数是吧。然后在这儿再我们再看。呃,定义了三个两三个变量啊name。B是什么卖我吗?然后呢,给它同时复制三个变量,同时复制啊,你这是一个字符串,然后这第二个呢,换成一个数字,第三个呢,给它搞成一个force。呃,三个变量,呃,负了四个值是吧,然后后边呢,跟一个这个mail啊。
16:07
嗯,然后我们跑一下,你看这个效果。37,呃,就是这个这个字符串数字,然后false。富裕的这个呢,没有用上,也可以这么搞啊,如果要是能够一一对应的话,它就对上啊,如果对不上的话呢,啊,那就这个对不上了,在这儿呢,还可以一字慢点。再加一个,这样是不是就对上了啊,在接下来这个name age和ma,最后是不是就把这email给他打出来了,对吧。嗯。这是这个啊,咱们再看下面这个啊。呃,定义一个函数。Function is my girl,然后传进去一个名称,那这个传进一个变量。然后return的时候呢,Name判断等不等于这个值啊。
17:04
然后然后最后呢,把这个name给他给呃,同时给他传回去。And,然后在这在在这再定义一个,再定义两个变量,一个是布尔的,一个是。呃,Name,然后调用上边这个函数传回来两个,一个是波尔啊,一个是这个字符串,然后最后呢,把这两个再给它打出来,你说这个return它能两个值,你你写Java代码写时间长了,是不是有时候特别期望它能出来两个值,对吧,Java就不行吗?啊,那好多时候我们都得想办法去处理,这这这个这个需求,就想让他捋他好几个,要么给他搞一个数组,要么给他整整一个新的对象,要么放到一个这个字符串里拉出来再去分割,呃,撸A语言呢,在这儿啊,你看就很方便,它可以return好几个啊。然后我们跑一下看看。你看这调这个函数的时候,Is my girl这里传了一小溜。
18:04
然后是不是等于小六,这是有一个。这个布尔判断啊,如果在这我们整一小七这边呢,就变force了是吧。小七是force,它能传回来两个纸,然后在打的时候呢,呃,也可以在这个这个如果没有字符拼接的话,在这中间拿逗号就可以把这两个纸呢,同时给它打出来了,如果有字符有字符串拼拼接的话。比如这样。然后这呢,我就得点点啊,就是这种方式啊。然后再看这有一个table。呃,Table呢,它就像我们用的这个map,就是KY6的这种键值,对。咱们跑一下他。呃。这个删了,这重了啊。逗梗。等于。大这个大括号啊,Name等于啥?Age等于多少,然后hit等于多少啊,这是对一个,呃,一个table啊,它叫table,这不是这个它它并不是真正的map,因为这里边儿它还能放一些额外的东西。
19:14
也就是到点edge,我可以去这么去调用它里边的其中的一个key,然后去给它取出来,并且给它赋值啊,这是值操作啊,Java里边也有这种操操作,然后再打印do name do edge和do的高度,然后以至于我们直接把这个dog给它打出来,你看看。啊,这个name是111啊,然后35。35啊,因为在这改了嘛,Age等于35,然后165的身高这这么一个dog,然后后边的这个table直接把它的这个内存地址给他打出来了,这里边很明显它没有这个to string是吧?啊Java里边有to string。嗯,然后这个。嗯,数组操作啊,前面的这是table操作,Table类似于map啊,是KY6的数组呢,就只有一个Y6,它没有K以下标去取的,对吧。
20:13
你们这数组。还是艾瑞,然后这里边儿,呃,第一个第二个第三个。诶,这是第三个,一共有三个这个,呃。这个这个这个这个呃。成这这这个成员啊,有三个值,让我们去打一下看看结果。嗯,然后汪旺。啊,不是三个是四个啊旺旺,然后一。你看呃,第一个呢,是这儿啊,一个string,然后第二个是100,第三个是dog,一个字符串,第四个是一个函数,这函数压根就没有,可以在这在这这个当场定义这个函数是function,先print一个汪汪,然后再return一个一出来,然后and,那这么写也可以,这是一个呃,这个lua里的。
21:09
这个数组啊,是比较特殊,这里边可以放这个一个一个一个钢铁的函数,你在这个呃,Table里呢,也可以这么写啊。然后想要去电力数组的话。还可以这么去便利。用这个F。少飞的动荡。用这个for key和Y6IN Paris,这是一个呃路亚里边的内置的呃函数,可以去把这个呃一个数字给它给拆开,拆到这个key和VALUE6里,然后array,这就是我们刚刚用的这个数组,然后print key和VALUE6。润。呃,K是一,然后Y6是,呃,它的这个值K呢,就是它的下标啊,这就是下标。
22:07
数组下标,数组下标呢,你要注意看。我们这是一共有12344个这个,呃,这个这个这个值对吧,然后但是他从一开始,这是洛亚语言的特点啊,所有的下标呢,都是一从一开始技术,嗯,Java和其他的很多语言都是从零开始。呃,这个lua和它不一样啊,这是从第一个开始取。然后这看还有一个这个成员函数,刚刚我们用了一个匿名函数是吧,还有一个成员函数就是在一个,呃。函数里边呢,再去定义定义另外一个函数啊,这这这个是person,我们在这儿呢,有一个啊table对吧,Name等于旺财,Age等于18,然后再定一个啊别这个新的函数,这函数呢,极值啊,这person点一负的啊person里边原本呢只有两个这个。
23:06
只有两个这个这个这个这个呃,这个这个键值啊,一个name一个A是吧,然后在这儿再加一个叫it的这个呢,嗯,它是一个函数,这函数能接值啊,然后这个里边的name内容是啥?打出来person.name点点连上什么呢?Eat了什么东西再点点啊,这点点就是和字符串相连啊。然后接下来我们去调这个percent点,这是新定义的。给删了,然我们跑一下。这就相对来说稍微复杂了一点,有点像,是不是有点像我们呃定义了一个新的对象啊,对吧,这对象里边既有呃KY6,然后还有这个呃这个这个这个函数啊是吧。啊,只是看起来像,看起来像一个静态的,呃,这这个这个这个对象,但其实这个路语言本身它并不支持这个面向对象,只只能通过这种table或者数组的方式呢,模拟出来,看起来好像是面向对象这种方式。
24:13
那这儿的,呃,这些代码呢,基本上已经涵盖了,我们去写这个,呃,这个这个亚程序的这个这这个所有了啊,基本上百百分之六七十七八十吧,啊都在这儿。把它有机的组合到一起呢,就可以写出来我们比较复杂的这种程序了啊,这是基本的语法,后边呢,我们你这儿如果要是记不住的话,也没关系啊,后边如果有有机会或者有经历的话,在这个恩吉克斯里呢,我们再去大展身手啊。
我来说两句