Spec-Zone.ru › Tcl/Tk

prefix

NAME
tcl::prefix — средства для сопоставления префиксов
SYNOPSIS
DESCRIPTION
::tcl::prefix all table string
::tcl::prefix longest table string
::tcl::prefix match ?options? table string
-exact
-message string
-error options
ПРИМЕРЫ
СМОТРИ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

tcl::prefix — средства для сопоставления префиксов

Синтаксис

::tcl::prefix all table string
::tcl::prefix longest table string
::tcl::prefix match ?option ...? table string

Описание

Данный документ описывает команды для поиска префикса в списке строк. Поддерживаются следующие команды:
::tcl::prefix all table string
Возвращает список всех элементов в table, начинающихся с префикса string.
::tcl::prefix longest table string
Возвращает наибольший общий префикс всех элементов в table, начинающихся с префикса string.
::tcl::prefix match ?options? table string
Если string равен одному элементу в table или является префиксом ровно одного элемента, возвращается соответствующий элемент. В противном случае результат зависит от опции -error. (Рекомендуется сортировать table перед использованием с этим подкомандой, чтобы список совпадений в сообщении об ошибке также стал отсортированным, хотя это не строго необходимо для работы этой подкоманды.)
-exact
Принимать только точные совпадения.
-message string
Использовать string в сообщении об ошибке при несовпадении. По умолчанию — “option”.
-error options
Опции options используются, когда совпадение не найдено. Если options пустая, ошибка не генерируется, и возвращается пустая строка. В противном случае options используются как опции return при генерации сообщения об ошибке. По умолчанию соответствует установке “-level 0”. Пример: Если используется “-error {-errorcode MyError -level 1}”, ошибка будет сгенерирована как:
return -errorcode MyError -level 1 -code error \
       "ambiguous option ..."

Примеры

Базовое использование:
namespace import ::tcl::prefix
prefix match {apa bepa cepa} apa
     → apa
prefix match {apa bepa cepa} a
     → apa
prefix match -exact {apa bepa cepa} a
     → bad option "a": must be apa, bepa, or cepa
prefix match -message "switch" {apa ada bepa cepa} a
     → ambiguous switch "a": must be apa, ada, bepa, or cepa
prefix longest {fblocked fconfigure fcopy file fileevent flush} fc
     → fco
prefix all {fblocked fconfigure fcopy file fileevent flush} fc
     → fconfigure fcopy

Упрощение сопоставления опций:

array set opts {-apa 1 -bepa "" -cepa 0}
foreach {arg val} $args {
    set opts([prefix match {-apa -bepa -cepa} $arg]) $val
}

Создание switch, поддерживающего префиксы:

switch [prefix match {apa bepa cepa} $arg] {
    apa  { }
    bepa { }
    cepa { }
}

См. также

lsearch, namespace, string, Tcl_GetIndexFromObj

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/prefix.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/prefix.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API