lua语法基础

2019-05-09 11:37:08
收藏数:0
阅读数:204
评论数:0

Lua 语法基础

基本数据类型

基本类型

  • nil
  • string
  • number
  • boolean
  • function
  • table

注. table是一种混合类型

运行下述代码

```#!/usr/bin/env lua

--[[
Lua 入门,2019之江学院公选课
精彩不断
--]]

count = 0
function sepline(title)
    count = count + 1
    print(string.format("------Section %d. %s------", count, title))
end

sepline('常量')
print 'true/false'

x = 19990318 -- 我把生日告诉lua的变量 x
print(x) -- lua 帮我打印了它
print "19990318" -- 字符串
print "生日快乐"
print(199999)
x = "生日快乐"
print(x)

print "我是字符串" --嵌套
print '"我是双引号字符串,我美吗?"'


print "笔停,铃响\n一张试卷卷走了三年的时光\n谁回头问我,今天考完了,还要回班么?"

print [[
《家书》

上学路上拾起一片法国梧桐

却不经意翻译出它泛黄的脉络

秋凉,添衣,勿念,速归
]]

print [[从明天起,做一个幸福的人
喂马,劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人

给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开]]

sepline('变量')

print(x)

print [[
x=1
_x='x=1'
_123='_123'
]]

sepline('类型')

print [[
nil
bool
number
string
function
table
]]

简介

Lua的表是一种键值对,相当于C/C++语言中的结构体,Java中的Hash表

代码示例


x = [[
%s:
你好。
你为我付出了很多很多,头发也白了,满脸的皱纹。好衣服也舍不得买,剩下钱供我考大学。
我不会不负你的。我发誓考上清华北大,报答你的养育之恩。

你的孩子 %s
]]

x = string.format(x, "妈妈", "王境泽")

x = {1, 2, 3}  -- C语言,数组
x = {[1]=1, [2]=2, [3]=3} -- 表

-- 表
x = {
name = '王境泽', 
code = 'zhenxiang', 
number = '11111111'
}

x = {
name = '之江帅哥', 
code = 'xxxxx', 
number = 111111333
}


t = [[
 -*- 之江论坛 -*-
姓名: %s
学号: %s
^_^
]]
xx = string.format(t, x['name'], x['number'])
print(xx)

循环结构

#!/usr/bin/env lua


-- 九九乘法表
-- 知识点:字符串格式化

for k=1,9
    do
    for j=1,k
        do
        print(string.format('%d X %d = %d', k, j, k*j))
    end
end

-- 九九乘法表
-- 知识点:字符串操作
-- 操作符:..
for k=1,9
    do
    row = ''
    for j=1,k
        do
        row = row .. string.format('%d X %d = %d', k, j, k*j)
    end
    print(row)
end

-- 九九乘法表
-- 知识点:表操作
-- 函数: table.concat
for k=1,9
    do
    row = {}
    for j=1,k
        do
        row[j] = string.format('%d X %d = %d', k, j, k*j)
    end
    print(table.concat(row,', '))
end

函数

function comment(x)
    -- body
end

comment [[
很美观的多行注释
喜欢的话,多多关注
666666
233333
]]


comment [[
函数定义、高阶函数、递归函数、匿名函数
]]

comment '关键字、定义语法'



function plus1(x)
    -- 函数的定义
    -- 加1
    return x+1
end


function poly(x)
    -- 二次函数/多项式
    print(string.format("%d^2+1=%d",x,x^2+1))
    return x^2+1
end

y = poly(3)  -- 函数的调用
print(y)


print '今天,去吃鸡吗'


function foo(x, reply, s1, s2)
    -- 四个参数
    if x == reply
        then
        print(s1)
    else
        print(s2)
    end
end

x = '不'
foo(x, '是', '😁😁😁', '😿😿😿') --version 1

x = '是'
foo(x, '是', ':):);)', ';(;(;-(') --version 2