Я ищу способ найти тип переменной в Tcl. Например, если у меня есть переменная $a, и я хочу знать, является ли она целым числом.
До сих пор я использовал следующее:
if {[string is boolean $a]} {
#do something
}
и это отлично работает для следующих типов:
alnum, alpha, ascii, boolean, control, digit, double, false, graph, integer, lower, print, punct, space, true, upper, wordchar, xdigit
Однако он не может сказать мне, может ли моя переменная быть массивом, списком или словарем. Кто-нибудь знает способ узнать, является ли переменная одной из этих трех?
serialize [object $mykey1 [int $value] $mykey2 [float $bar]]
и так далее. Попытка вывести тип бестипового значения чревата ошибками, которые невозможно исправить. Не говоря уже об очевидных случаях, когда я хочу, чтобы строка 0123 действительно сериализовалась как строка, а не интерпретировалась как 123 или 83 (см. wiki.tcl.tk/498 для интересного) - person kostix   schedule 16.09.2011