Эквивалентом в Dart является интерполяция строк:
"Hello $variable1, you are $variable2 years old"
Если вы хотите абстрагироваться от переменных, вы можете использовать простую функцию:
String greet(String name, int age) =>
"Hello $name, you are $age years old";
Вы можете сделать То же самое для любого фиксированного количества аргументов.
Если вы хотите передать строку формата и соответствующее количество значений, у Dart нет переменных. Вместо этого вы можете создать функцию, как указано выше, для строки формата и вызывать ее в списке аргументов, используя Function.apply
:
String format(Function formatFunction, List<Object> values) =>
Function.apply(formatFunction, values);
...
format((a, b, c) => "The $a is $b in the $c!", ["dog", "lost", "woods"]);
format((a, b) => "The $a is not $b!", ["status", "quo"]);
Вы теряете безопасность типа stati c, но вы всегда это делали это тоже с форматными строками.