String.format java эквивалент метода в дротике - PullRequest
1 голос
/ 22 апреля 2020

Возможно ли в Dart динамически вводить много значений переменных в строку, подобную этой?

// Java code using String.format. In this case just 2 variables
String.format("Hello %s, You have %s years old", variable1, variable2)

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Эквивалентом в 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, но вы всегда это делали это тоже с форматными строками.

0 голосов
/ 22 апреля 2020

Вы можете создать класс, например:

class MyString {
  static format(String variable1, String variable2) {
    return "Hello $variable1, you are $variable2 years old";
  }
}

, а затем использовать его следующим образом:

MyString.format("Bob", "10"); // prints "Hello Bob, you are 10 years old"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...