Как мне преобразовать строку в целое число в jsonnet?
У меня есть строка, которая содержит число в переменной Jsonnet. Как я могу преобразовать его в целое число?
2 ответа
Стандартная библиотека Jsonnet предоставляет: std.parseInt(str)
функция, которая может анализировать десятичное целое число со знаком из заданной входной строки. Например:
std.parseInt("123") // yields 123
std.parseInt("-456") // yields -456
Стандартная библиотека Jsonnet довольно тонкая, но вот пример функции Jsonnet, которая выполняет это преобразование.
{
string_to_int(s)::
local char_to_int(c) = std.codepoint(c) - std.codepoint("0");
local digits = std.map(char_to_int, std.stringChars(s));
std.foldr(function(x,y) x+y,
std.makeArray(std.length(digits),
function(x) digits[std.length(digits)-x-1]*std.pow(10, x)),
0),
}