lua学习小记(1)

        决定学一门动态脚本语言,感受一下不受拘的coding,发现比较流行的又不是只能用来写网页的有pythonluaruby等。lua兼具运行效率高,表达能力强的优点,成了我的首选。更何况月亮听起来要比蟒蛇红宝石文艺多了。

       这是第一篇,但我不知道会不会写第二篇。题目括号里的数字是1,因为lua里的数组下标习惯上是从1开始的,当然从-1234开始也没有错,但不建议在一个团队中使用,尤其团队成员有暴力倾向的话。

       原以为lua会比较好学一点,因为它小巧。现在知道错了,lua不是那么易学,因为小巧。经验告诉我们,由一组简单的规则衍生出复杂变化的事物,都不是好学的,尽管他们学起来都很有意思。


        这行代码是luahello world程序,对比javahello world就会感到lua的语法简洁。下面的代码也是可以的:


        效果一样。可以看出lua中的函数也是第一类值,可以像变量一样赋值,传作参数。但函数不是变量,而是匿名对象,isay和print都是对函数的引用。


        不要被上面那段的语法迷惑了,认为是个函数声明——准确地说,是把匿名函数的引用赋值给say,上述的语法只是个语法糖,解释器会被它翻译成如下代码:


        起初不喜欢这个语法糖,后来发现在处理递归时,这个语法糖还是很简洁的,此处不表。

        lua的设计目标之一在于更方便地表示数据,所以,表无处不在。


        第一行是表的初始化表达式,表也是匿名对象,t是它的引用。接着的循环遍历了表中的元素。可以通过t[1]访问到值1,也可通过t.a访问到值4——这个表一部分是数组,一部分是字典。

        其实程序的最外层也是一个表,它的引用是_G,t也是_G的一个键。

        有个与表相关的语言特点,lua可以多值赋值。这可以带来一些方便。

        比如较换两个数的值,普通程序员这么写:


        文艺程序员:


        lua程序员:



你可能感兴趣的:(lua)