Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su
1.4. В чём разница между `*pl "строка"` и просто `"строка"`?
В: В чём разница между `*pl "строка"` и просто `"строка"`?
О:
Любое значение, записанное без оператора, плеер автоматически выводит на экран, как если бы перед этим значением стоял оператор `*pl`:
"Строка текста, после которой будет вставлен перевод каретки."
На самом деле значение, записанное без оператора, передаётся так называемому "неявному оператору". То есть оператору, название которого попросту никогда не указывается. В большинстве случаев неявный оператор ведёт себя так же, как оператор `*pl`:
triz+bort
48*59-rtu
$mid("какая-то строка",10)
Однако существует одно отличие между неявным оператором и оператором `*pl`.
Если выражение, переданное неявному оператору, не возвращает никакого результата (например, пользовательская функция), плеер просто ничего не выведет на экран.
Если выражение, которое не возвращает никакого результата, передано оператору `pl`, оператор `pl` выведет на экран пустую строку и сделает перевод каретки.
*pl 'explicit'
*pl $func('foo')
*pl 'explicit'
'implicit'
$func('foo')
'implicit'
--- start ---
# foo
N=45+67
--- foo ---