Самый эффективный способ напечатать переменное количество символов в Hack? - PullRequest
2 голосов
/ 22 мая 2019

Я работаю над проектом Hack и столкнулся с ситуацией, когда мне нужно напечатать $n пробелов.Вот как я сейчас это делаю:

for ($i = 0; $i < $n; $i++) echo " ";

Мне интересно, является ли $n вызовы echo наиболее эффективным способом для этого?Немного погуглив, я узнал, что, как правило, множественные вызовы echo выполняются быстрее, чем конкатенация строк, и что Hack не имеет встроенного эквивалента StringBuilder.Мой цикл for достигает этой максимальной эффективности, или мне чего-то не хватает?

Спасибо!

1 Ответ

2 голосов
/ 02 июня 2019

Если вы используете HackLang, вы должны использовать HSL (стандартная библиотека Hack) вместо устаревших функций php.

Лучший способ обойти это - использовать Str\repeat функция (аналогично str_repeat в PHP)

use namespace HH\Lib\Str;

echo Str\repeat(' ', $n);

Примечание: убедитесь, что вы используете ту же версию HSL, что и HHVM

, если вы используете HHVM 4 (рекомендуется), выполните composer require hhvm/hsl:^4

, если вы используете HHVM 3, выполните hhvm $(which composer) require hhvm/hsl:^3

и т. д. ...

...