Как я могу напечатать имя переменной и ее значение, не вводя имя дважды?

Когда вы отлаживаете, это очень полезно делать:

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 может это сделать.)

Даже на языках, где я нашел какое-то решение, оно работает только для простых случаев. Что, если я хочу напечатать произвольное выражение?

Если бы я разрабатывал язык, эта функция была бы обязательной. : -)

6
задан Community 23 May 2017 в 12:19
поделиться