Как преобразовать строку в целое число в jsonnet?

У меня есть строка, содержащая число в переменной Jsonnet. Как мне преобразовать его в целое число?


person kgraney    schedule 02.07.2016    source источник


Ответы (2)


Стандартная библиотека Jsonnet предоставляет функцию: std.parseInt(str), которая может анализировать десятичное целое число со знаком из заданной входной строки. Например:

std.parseInt("123") // yields 123
std.parseInt("-456") // yields -456

Ссылка: http://jsonnet.org/docs/stdlib.html

person mohitsoni    schedule 13.03.2018

Стандартная библиотека 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),
}
person kgraney    schedule 02.07.2016