Цикл интерпретатора Tcl - довольно простой, с очень небольшим количеством скрытых функций - не сохраняет последнее значение результата для вас;Предполагается, что если вы хотите сохранить это на потом, вы сделаете это вручную (или повторите команду и получите результат заново, чтобы потом сохранить его).
Если вы хотите сохранитьзначение на потом, используйте set
. Вы можете использовать *
в качестве имени переменной (это допустимо), но на практике это раздражает, поскольку ярлык синтаксиса $var
не работает с ним, и вместо этого вам нужно будет сделать:
% set * [expr {2**2**2**2}]; # Or whatever...
65536
% puts "the value was ${*}... this time!"
the value was 65536... this time!
% puts "an alternative is to do [set *]"
an alternative is to do 65536
Это, вероятно, будет немного раздражать при наборе текста;используйте вместо этого имя, например it
.
% set it [expr {2**2**2**2}]; # Or whatever...
65536
% puts [string length [expr {123 << $it}]]
19731
(в этом последнем номере довольно много цифр, больше, чем я ожидал…)