что означает источник: match ("% d *") в lua? - PullRequest
0 голосов
/ 07 ноября 2019
-- 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 в приведенном выше коде. Любые комментарии с благодарностью.

1 Ответ

0 голосов
/ 08 ноября 2019

Это все в Справочном руководстве 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]) Ищет первое совпадение pattern (см. §6.4.1 ) в строке s. Если он находит, сопоставление возвращает захваты из шаблона;в противном случае возвращается ноль. Если в шаблоне не указано ни одного захвата, то возвращается все совпадение. Третий необязательный числовой аргумент init указывает, где начать поиск;его значение по умолчанию равно 1 и может быть отрицательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...