小编Dro*_*ohi的帖子

在lua中使用指定的分隔符拆分字符串

我正在尝试在lua中使用分隔符创建一个split()函数,当默认为空格时.默认工作正常.当我给函数分隔符时,问题就开始了.由于某种原因,它不会返回最后一个子字符串.功能:

function split(str,sep)
if sep == nil then
    words = {}
    for word in str:gmatch("%w+") do table.insert(words, word) end
    return words
end
return {str:match((str:gsub("[^"..sep.."]*"..sep, "([^"..sep.."]*)"..sep)))} -- BUG!! doesnt return last value
end
Run Code Online (Sandbox Code Playgroud)

我尝试运行这个:

local str = "a,b,c,d,e,f,g"
local sep = ","
t = split(str,sep)
for i,j in ipairs(t) do
    print(i,j)
end
Run Code Online (Sandbox Code Playgroud)

我得到:

1   a
2   b
3   c
4   d
5   e
6   f
Run Code Online (Sandbox Code Playgroud)

无法弄清楚bug在哪里......

regex lua

5
推荐指数
2
解决办法
7350
查看次数

ARM Cortex M 中的 ISB 指令

到目前为止,我使用了 3 个 NOP 来“清理”管道。最近我遇到了 ISB 指令,它可以帮我做到这一点。查看arm信息中心,我注意到这个命令需要4个周期(在Cortex M0下),而3个NOP只需要3个周期。

我为什么要使用这个命令?它与 3 NOP 有什么不同?

assembly arm instructions memory-barriers cortex-m

2
推荐指数
1
解决办法
2734
查看次数

标签 统计

arm ×1

assembly ×1

cortex-m ×1

instructions ×1

lua ×1

memory-barriers ×1

regex ×1