risc-v中文社区

 找回密码
 立即注册
查看: 631|回复: 2

lua语法实验--变量类型及数组

  [复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2022-6-17 15:29:41 | 显示全部楼层 |阅读模式
c = 13.2
b = 4
print("c / b = ",c / b, " c % b= ",c % b)
print(type("Hello world"))      --> string
print(type(10.4*3))             --> number
print(type(print))              --> function
print(type(type))               --> function
print(type(true))               --> boolean
print(type(nil))                --> nil
print(type(type(X)))            --> string

function myfun(arg)
  if(arg == 0) then
     return 1
  else
     return arg * myfun(arg-1)
  end
end
print("myfun(5)=",myfun(5))

arr = {"zhanshan",20,"lisi",30}
print(arr[0],arr[1],arr[2],arr[3])


显示如下:


c / b =         3.3         c % b=         1.2
string
number
function
function
boolean
nil
string
myfun(5)=        120
nil        zhanshan        20        lisi



回复

使用道具 举报

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
 楼主| 发表于 2022-6-17 15:32:37 | 显示全部楼层
为什么arr[0]是nil而arr[1]=zhanshan??? 因为LUA数组默认是从1索引开始的,当然也可以改变
回复

使用道具 举报

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
 楼主| 发表于 2022-6-17 15:35:27 | 显示全部楼层
arr = {"zhanshan",20,"lisi",30}
for i=1,#arr +1 do  --lua中for循环从1开始,到#arr所代表的数组长度为止,包含#arr值在内
  print(arr[i])  --超过数组索引长度则值为nil
end
print("i=",i) --LUA不是默认变量都是全局的吗,为啥打印是nil????
--改变数组索引
arrB = {} --空数组
for i=-2,2 do
  arrB[i = i
end
for i=-2,2 do
  print("i=",arrB[i])
end


打印显示如下:

zhanshan
20
lisi
30
nil
i=        nil
i=        -2
i=        -1
i=        0
i=        1
i=        2





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-5-5 02:05 , Processed in 0.023885 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表