Когда вы отлаживаете, это очень полезно делать:
var = calc()
print("var:", var)
Есть ли язык, где это легко сделать? В C и C ++ вы можете использовать макрооператор строкового преобразования #, а в Ruby я нашел такой вопрос:
Ruby - напечатайте имя переменной, а затем ее значение
Решение, использующее символ: var и блок, - это то, что я хотите.
В D я использовал это:
void trace(alias msg)() {
writeln(msg.stringof ~ ":" ~ to!string(msg));
}
Но я не уверен, что это лучший способ, потому что он работает только в простых случаях. Я пробовал несколько способов, но иногда вы можете получить строку, но не значение (потому что переменные выходят за рамки), или вам сначала нужно смешать шаблон, а затем вызвать функцию.
А как насчет других языков? Python? F #? Бу? Сценарий оболочки (какая бы оболочка)? Perl? (Я предпочитаю держаться подальше от Perl). Tcl? Лисп, схема? Ява? (очень маловероятно, что Java может это сделать.)
Даже на языках, где я нашел какое-то решение, оно работает только для простых случаев. Что, если я хочу напечатать произвольное выражение?
Если бы я разрабатывал язык, эта функция была бы обязательной. : -)