Кресты / Говнокод #12111 Ссылка на оригинал

0

  1. 1
QString("a=%1 b=%2").arg("[%1]").arg("Shit happens")

Вы думаете, что результат будет "a=[%1] b=Shit happens"?
Как бы не так! "a=[Shit happens] b=%2".

Причем эта "фича" вполне документирована. Но документирована она не в самом первом описании arg'а, а только в arg(const QString &a1, const QString &a2), в доку по которому я естественно никогда не заглядывал...

UPD: правильным вариантом будет QString("a=%1 b=%2").arg("[%1]", "Shit happens"), но тогда мы лишаемся поддержки форматирования, да и таким образом можно засунуть максимум 10 аргументов.

Запостил: bormand bormand, (Updated )

Комментарии (5) RSS

  • >Вы думаете, что результат будет "a=[%1] b=Shit happens"?
    После того как ты спросил сразу стало ясно что тпм будет.
    Ответить
  • Вполне можно догадаться и без документации. Но вполне можно и случайно проглядеть, согласен...
    Ответить
    • QString("a=%1 b=%2").arg("[%1]") - результат имеет тип QString и содержит "a=[%1] b=%2", какого же еще результата ожидать от второго вызова arg?
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8