Diqqət! 4 aprel 2024-cü il tarixdən saytın yeni versiyası sheki.org domenində fəaliyyət göstərir. Bu köhnə versiyadır və yenilənməsi məhdudlaşdırılıb...

Changes

Jump to navigation Jump to search
1.452 bayt əlavə edildi ,  20:14, 28 aprel 2021
Səhifəni 'local getArgs = require('Module:Arguments').getArgs local p = {} local function inTable(table, value) for k, v in pairs(table) do if v == value then return true e...' ilə yarat
local getArgs = require('Module:Arguments').getArgs
local p = {}

local function inTable(table, value)
for k, v in pairs(table) do
if v == value then
return true
end
end
return false
end

function p.list(frame)
return table.concat(mw.hash.listAlgorithms(), '; ')
end

function p.main(frame)
local args = getArgs(frame, { frameOnly = true })
local algorithm

if not args[1] then
return '<span class="error">Не указана строка для хеширования.</span>'
end
if args[2] then
if not inTable(mw.hash.listAlgorithms(), args[2]) then
return '<span class="error">Алгоритм хеширования ' .. args[2] .. ' не поддерживается, или вы неточно указали его имя. Используйте функцию <kbd>mw.hash.listAlgorithms()</kbd> для получения списка доступных алгоритмов.</span>'
end
algorithm = args[2]
else
-- Алгоритм выбран из соображений быстродействия (см. [[:en:Fowler–Noll–Vo hash function]]),
-- 64-битная функция используется для уменьшения вероятности коллизий до пренебрежимо малой
-- величины. Возможно, есть лучшая опция — проверяйте.
algorithm = 'fnv164'
end

return mw.hash.hashValue(algorithm, args[1])
end

return p

Naviqasiya menyusu