В моем Tcl у меня есть поиск по словарю, который может не существовать, поэтому я хотел бы сделать что-то вроде этого:
set result [dict exists $values "key"] ? [dict get $values "key"] : "<not present>"
Однако, троичный оператор оценивает предложение, которое не было принято, и он терпит неудачу.
Позже я хочу посмотреть, если значение dict равно 10, я попробовал все это, и ничего не работает, когда результат "<not present>"
:
set test [expr $result == 10]
set test [expr [string is integer $result] && [expr $result == 10]]
set test [expr [string is integer $result] ? [expr $result == 10] : false]
Что такое способ тестирования Tclсуществует ли ключ словаря и его значение равно 10?
Я бы предпочел не использовать числовое значение (например, -99
) вместо "<not present>"
, чтобы я мог видеть при использовании результатов на результатычто значение не найдено.