initFormat неправильно присоединяется к строке в моем коде

Я изучаю пример GCampax Gtk+Gjs[1] и задаюсь вопросом, как использовать initFormat.

Насколько я знаю, это функция JS для объединения строк и переменных, работающих, например,

print("Hello, {0}".format("World"));  //--> Hello, World

но похоже, что в GJS это не работает:

const pkg = imports.package
pkg.initFormat()
print("Hello,{0}".format("World"))  //--> Hello,{0}

Я ожидаю, что будет напечатано Hello, World, но вместо этого я получаю Hello,{0}.

Помощь

[1] https://github.com/gcampax/gtk-js-app


person medeoTL    schedule 17.05.2019    source источник


Ответы (1)


initFormat() добавляет к строкам метод format(). Форматы работают так же, как в C и других языках, производных от языка форматирования C printf, поэтому вам нужно будет написать "Hello, %s".format("World").

Однако эта функция устарела, поскольку в JS есть интерполированные строки. Вместо этого просто напишите что-то вроде этого:

const target = "World";
print(`Hello, ${target}`);
person ptomato    schedule 18.05.2019