永发信息网

lua语言!有人知道下面代码的意思吗?

答案:3  悬赏:80  手机版
解决时间 2021-02-28 02:44
  • 提问者网友:且恨且铭记
  • 2021-02-27 18:54
function lua_string_split(str, split_char)
local sub_str_tab = {};
while (true) do
local pos = string.find(str, split_char);
if (not pos) then
sub_str_tab[#sub_str_tab + 1] = str;
break;
end
local sub_str = string.sub(str, 1, pos - 1);
sub_str_tab[#sub_str_tab + 1] = sub_str;
str = string.sub(str, pos + 1, #str);
end

return sub_str_tab;
end
最佳答案
  • 五星知识达人网友:等灯
  • 2021-02-27 20:12
根据 split_char 字符分割 str 字符串。例如: str = "abc,def,ghi" split_char = ',' 则
sub_str_tab = {[1] = "abc", [2] = "def", [3] = "ghi"}
全部回答
  • 1楼网友:duile
  • 2021-02-27 22:47
就是一个字符串分割函数 你实际举例拿去运行一下就明白了
  • 2楼网友:枭雄戏美人
  • 2021-02-27 21:12
后面部分没看懂,但是我觉得会出错 local pos = string.find(str, split_char); 在str里面查找split_char , 把查找的结果返回到pos,如果找到会返回找到的起点,比如在“123”里面查找“2”,返回的就是2,因为“2”是第2个字符。找不到就会返回nil ----------------------------------- if (not pos) then sub_str_tab[#sub_str_tab + 1] = str; break; end 如果返回的pos不是nil就把str新增到数组 sub_str_tab ---------------------------------- local sub_str = string.sub(str, 1, pos - 1); 把str字符串从第1个字符开始,一直截取到倒数第(pos-1)个字符,截取的结果赋值给sub_str 不过我觉得这一句话会不对,因为如果pos不是nil,那么前面就直接跳出循环了,这一句执行不到。如果pos是nil,那么pos-1就变成了nil和数字的运算,会出错。 -------------------------- 后面2句和前面的用法是一样的,不过没看懂为什么要这么写 —————————————— 刚开始学lua,要是说的不对,自行纠正。有兴趣可以加Q群一起交流,103760539
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯