Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Tcl] Команда format, Тонкости строки формата 
:(
    Опции темы
МУХ
  Дата 31.10.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 31.10.2009
Где: Саратов

Репутация: нет
Всего: нет



В документации к этой команде есть следующие строки:

Цитата

Если за символом "%" следуют целое число и знак "$", как например в "%2$d", то величина для преобразования берется не из следующего аргумента, а из аргумента, занимающего соответствующую позицию в списке ("1" соответствует первому аргументу arg). Если спецификатор преобразования требует нескольких аргументов (когда он содержит символ "*"), то используются последовательные аргументы, начиная с указанного. Если один из спецификаторов содержит указание позиции аргумента, то и все остальные спецификаторы должны его содержать.


Источник на opennet.ru/...

Так вот собственно более никаких пояснений и примеров насчет этих "нескольких аргументов (когда он содержит символ "*")" нигде нет :( Вопрос - как заюзать эти множественные параметры? И что это вообще такое?

Кроме того тот же символ * используется и в других целях:

Цитата

Если минимальная ширина поля указана как "*", а не как число, то в качестве числового значения используется значение следующего аргумента в команде.

(там же)

Буду очень благодарен за прояснение этого момента.

Собственно строка формата (за некоторыми исключениями) одинакова для множества языков. Функции только называются по разному. В Си это sprintf, например. Но для нее я тоже объяснения этого момента не нашел.

Это сообщение отредактировал(а) МУХ - 31.10.2009, 17:54
PM MAIL WWW   Вверх
al77ex
Дата 20.12.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.12.2009

Репутация: нет
Всего: нет



Как я понимаю параметр звездочка имеет уникальное значение в команде format получается вместо звездочки имеется возможность подставить значение какой-либо переменной. Вот небольшой пример который должен прояснить ситуацию. В этом примере переменной mx изменяется ширина поля вывода.

1% set mx 8
8
2% format "%-*s = %s" $mx key val
key      = val
3% set mx 18
18
4% format "%-*s = %s" $mx key val
key                = val
5% 

Еще могу порекомендовать недавно появившийся ресурс http://etcl.ru/
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.