LINUX.ORG.RU

tcl - писать proc ::namespace::name или namespace eval { proc name } ?

 ,


0

1

Смотрю, что в tkcon и в ctext принят первый вариант. В начале файла пишется

namespace eval namespace {}
и далее каждая процедура определяется на верхнем уровне
proc ::namespace::myproc {} {}

Я вообще-то принял другой стиль, когда весь файл - это один гигантский стейтемент namespace eval, внутри которого отдельные proc:

namespace eval namespace {
    proc myproc {} {}
}

Я сделал это, чтобы можно было грепом искать определение процедуры, не помня её пространство имён.

Что является принятой практикой?

★★★★★

Я второй вариант обычно использую. Вроде как в современном тикле больше к нему склоняются.

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)

в общем случае эти два объявления не эквивалентны. Они разные и приводят к разным эффектам, и то что кажется «выбором стиля» или вариантом оформления кода, может быть продиктовано технической необходимостью.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Ммм. Ну я и подумал, что это может быть связано, но ребусов мне пока и без этого ребуса вполне хватает :)

den73 ★★★★★
() автор топика

Первый вариант.

  • нет отступа перед proc, глобальный отступ - это напрасная трата ресурсов,
  • стек на один вызов меньше - отлаживать проще,
  • грепаю так: «/::myproc», это проще.
fopen ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.