shineblink Core上手编程

本文介绍了Core平台上的Lua编程基础知识,包括函数、变量、数组(表)、流程控制(if、elseif、else)和循环控制(for、while)。强调了Lua中数组下标从1开始的特点,并通过实例展示了如何使用这些基本语法。文章适合初学者,通过学习可以快速掌握Core的Lua编程。
摘要由CSDN通过智能技术生成

前言:无论您擅长什么语言,C、python、Java、Lua、或PHP,哪怕是刚入门的编程小白,只要您掌握了最基本的编程思想比如:if,
else, for, while的用法,您基本就可以很快速的上手 Core 的编程开发了。在 Core
上面的编程只会涉及到最基本的编程语法,而编程语言自带的一些高级特性在 Core 上您基本用不到,即使Core 也支持这些高级特性。Core
编程语言采用的是 Lua,一个执行效率介于 C 和 Python 之间的的脚本语言,目前来看除了 C
语言,也就只有Lua更适合于在资源有限的嵌入式 CPU
上开发程序了。所以不管是Lua也好,Python也好,它只不过是一个语言工具,最重要的是掌握基本的编程思想,这样上手其他语言也会非常的快。

一、函数、变量

例1.1 全局变量、局部变量及函数的定义和使用:

a = 5               -- 全局变量
​
--定义一个函数func()
function func()
    local a = 10    -- 局部变量
    b = 20          -- 全局变量
end
​
func()print(a,b)          --> 5 20

代码解析:以上代码中 print 打印输出的 a 和 b 的值分别为5和20。代码中定义了两个变量
a,一个是全局变量,一个是局部变量,虽然局部变量 a 在 func() 函数中被赋值为10,但离开func()函数体范围后,print
打印的 a 仍然是全局变量 a 的值5。对于全局变量 b,即使是在在函数体 func() 中定义的,也不影响其全局性。所以 Lua
中定义的变量默认为全局变量,如果想定义局部变量,需要在变量前面加上 local 修饰语。

二、数组、表(table)

表(table)是 Lua 语言中的一种数据结构,既可以当作数组(类似于 C 语言中的数组)来用、也可以当作列表和字典(类似于 Python
中的列表和字典)来用。更多关于 Lua Table 的知识请参考此处。

但这里重点介绍一下数组,因为在 Core
编程中数组使用的频率较高。数组也是表的一种特殊形式,只不过其键值是用整数表示的。提到数组可能我们会联想到 C
语言中的数组。没错,在使用上二者确实很相似,但有一点一定要注意的是 C 语言中的数组下标是从0开始,而 Lua
的数组下标是从1开始这点需要留意。熟悉 C 编程的人经常会在此犯错误。下面介绍数组的一些用法:

例2.1 元素为字符串的数组:

array = {"shine", "blink", "core"}--连续打印出array[1],array[2],array[3],
for i= 1, 3 do
   print(array[i])
end

以代码上输出为:

shine

blink

core

例2.2 元素为数字的数组:

a = {1, 3, 5, 7, 9}--将数组a中的元素值全部加1并打印输出
for i= 1, 5 do
    a[i] = a[i] + 1
    print("a[i] = %d", a[i])
end

以代码上输出为:

a[1] = 2

a[2] = 4

a[3] = 6

a[4] = 8

a[5] = 10

三、流程控制:if、elseif、else

例3.1 if - elseif - else流程:

a = 99
b = 101
c = 0if a > 100 then
    print(string.format("a = %d", a))
elseif b > 100 then
    print(sring.format("b = %d", b))
else
    print("found no values larger than 100")
end

解析:代码运行后的输出为 “b = 101”。

例3.2 if 条件中使用 and:

a = 99
b = 101
c = 0--判断a和b的值都大于100才输出“yes”
if a > 100 and b > 100 then
    print("yes")
else
    print("no")
end

解析:代码运行后输出为 “no”

例3.3 if 条件中使用 or:

a = 99
b = 101
c = 0--判断a或b的值任意一个大于100就输出“yes”
if a > 100 or b > 100 then
    print("yes")
else
    print("no")
end

解析:代码运行后输出为 “yes”

四、循环控制:for、while

例4.1 数值 for 循环:
定义:

--var 从 p1 变化到 p2,每次变化以 p3 为步长,p3 如果不指定,默认为1for var=exp1,exp2,exp3 do  
    <执行体>  
end  

数值 for 循环例子:

--例如:
a = {1, 3, 5, 7, 9}
--将数组a中的元素值全部加1
for i= 1, 5 do --这里省掉了第三个参数步长(p3),所以是按1为步长,将数组a的元素逐个打印出来
    print("a[i] = %d", a[i])
end

以代码上输出为:

a[1] = 1

a[2] = 3

a[3] = 5

a[4] = 7

a[5] = 9

例4.2 泛型 for 循环:

--打印数组a的所有值  
a = {1, 3, 5, 7, 9}
for i, v in ipairs(a) do
    print(i, v)
end 

以代码上将连同数组中每个元素的索引号也打印出来:

1 1

2 3

3 5

4 7

5 9

例4.3 while循环:

a = 0
--循环打印出 a 的值
while(a < 5) 
do
   print("a = ", a)
   a = a+1
end

以上代码输出如下:

a = 0

a = 1

a = 2

a = 3

a = 4

五、结语

关于 Core 开发中常用到的 Lua 语法知识就介绍到这里,如果您过去已经掌握了其他的编程语言甚至 Lua 语言那么您看上面的教程应该完全无压力,但如果您还是刚入门的小白看的不是太懂也没关系,因为 Core 会提供大量的应用例程,多看多参考自然会慢慢掌握。同时这里也推荐一个不错的 IT 类语言自学网站,里面有十分适合小白级别的 Lua 教程, https://www.runoob.com/lua/lua-tutorial.html

注意:Core 提供的例程中完全没用到 Lua 语言的任何高级特性,比如模块和包、元表、协同程序、面向对象等。所以如果您只是基于Core
平台开发的话,这些概念可以不用掌握。

更多详情请参看 shineblink.com官网链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值