Утечки контекста Android в AsyncTask

У меня есть решение, очень похожее на решение Питера, но оно касается числа и случая объекта.

if (!String.prototype.format) {
  String.prototype.format = function() {
    var args;
    args = arguments;
    if (args.length === 1 && args[0] !== null && typeof args[0] === 'object') {
      args = args[0];
    }
    return this.replace(/{([^}]*)}/g, function(match, key) {
      return (typeof args[key] !== "undefined" ? args[key] : match);
    });
  };
}

Может быть, было бы еще лучше иметь дело со всеми случаями глубины, но для моих нужд это просто хорошо.

"This is an example from {name}".format({name:"Blaine"});
"This is an example from {0}".format("Blaine");

PS: эта функция очень полезна, если вы используете переводы в шаблонах, таких как AngularJS :

{{('hello-message'|translate).format(user)}}

{{('hello-by-name'|translate).format( user ? user.name : 'You' )}}

, где en.json что-то вроде

{
    "hello-message": "Hello {name}, welcome.",
    "hello-by-name": "Hello {0}, welcome."
}

24
задан David LeBauer 19 November 2010 в 07:04
поделиться

1 ответ

Используйте подмножество в сочетании с регулярными выражениями:

subset(your_data, regexpr("foo", your_data$your_column_to_match) > 0))

Если вы просто заботитесь о наборе данных с одним столбцом, я думаю, вам не нужно указывать имя столбца ...

Филипп

6
ответ дан 28 November 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: