-- Parse speed value as kilometers by hours.
function Measure.parse_value_speed(source)
local n = tonumber(source:match("%d*"))
if n then
if string.match(source, "mph") or string.match(source, "mp/h") then
n = n * miles_to_kilometers
end
return n
end
end
我对以上代码中%d之后的“ *”感到困惑。任何意见,不胜感激。
答案 0 :(得分:0)
这一切都在Lua参考手册中!
source:match("%d*")
是string.match(source, "%d*")
的语法糖
请参见https://www.lua.org/manual/5.3/manual.html#3.4.10
string.match(s,pattern [,init])查找字符串s中pattern的第一个匹配项(请参见§6.4.1)。如果找到一个,则匹配 返回模式的捕获;否则返回nil。如果 模式未指定捕获,则返回整个匹配项。一种 第三,可选的数字参数init指定从何处开始 搜索;其默认值为1,并且可以为负。