Модуль Core.Printf (F#)

Расширенное форматирование в стиле printf для чисел и других типов данных.

Пространство имен/путь к модулю: Microsoft.FSharp.Core

Сборка: FSharp.Core (в FSharp.Core.dll)

module Printf

Заметки

Спецификации формата представляют собой строки с маркерами %, обозначающими заполнители формата. Заполнители формата содержат следующие параметры: %[flags][width][.precision][type], где тип интерпретируются согласно описанию в следующей таблице.

Тип

Описание

%b

Форматирование значения типа bool, представленного в формате true или false.

%s

Форматирование значения типа string, представленного в формате его содержимого, без интерпретации escape-символов.

%d, %i

Форматирование любого базового целочисленного типа, представленного в формате десятичного целого числа со знаком, если базовый целочисленный тип является знаковым.

%u

Форматирование любого базового целочисленного типа, представленного в формате десятичного целого числа без знака.

%x

Форматирование любого базового целочисленного типа, представленного в формате шестнадцатеричного целого числа без знака, с использованием строчных букв от a до f.

%X

Форматирование любого базового целочисленного типа, представленного в формате шестнадцатеричного целого числа без знака, с использованием прописных букв от A до F.

%o

Форматирование любого базового целочисленного типа, представленного в формате восьмеричного целого числа без знака.

%e, %E, %f, %F, %g, %G

Форматирование любого базового типа с плавающей запятой (float, float32), представленного в формате, соответствующем спецификациям формата с плавающей запятой в стиле C.

%e, %E

Форматирование значения со знаком, имеющего формат [-]d.dddde[sign]ddd, где d — одна десятичная цифра, dddd — одна или несколько десятичных цифр, ddd — три десятичные цифры, sign — знак + или -.

%f

Форматирование значения со знаком, имеющего формат [-]dddd.dddd, где dddd — одна или несколько десятичных цифр. Количество цифр перед десятичной точкой зависит от порядка числа, а количество цифр после десятичной точки зависит от указанной точности.

%g, %G

Форматирование значения со знаком, представленного в формате f или e, в зависимости от того, какой формат является более компактным для заданных значения и точности.

%M

Форматирование значения Decimal.

%O

Форматирование любого значения, выводимого на печать посредством упаковки-преобразования объекта и использования его метода ToString.

%A

Форматирование любого открытого значения, выводимого на печать с параметрами макета по умолчанию. Форма %+A может использоваться для печати значения закрытых данных. Типы классов и структур отображаются так же, как и с %O, независимо от того, используется ли %+A или %A.

%a

Общий описатель формата, для которого требуются два аргумента. Первым аргументом является функция, которая принимает два аргумента — параметр контекста соответствующего типа для заданной функции форматирования (например, TextWriter) и значение для печати — и выводит или возвращает соответствующий текст.

Второй аргумент — конкретное значение для печати.

%t

Общий описатель формата, для которого требуется один аргумент: функция, которая принимает параметр контекста соответствующего типа для заданной функции форматирования (TextWriter) и выводит или возвращает соответствующий текст. Базовые целочисленные типы — byte, sbyte, int16, uint16, int32, uint32, int64, uint64, nativeint и unativeint. Базовые типы с плавающей запятой — float и float32.

Необязательный параметр ширина — это целое число, указывающее минимальную ширину результата. Например, при указании спецификации %6d печатается целое число, перед которым выводятся пробелы для заполнения по крайней мере 6 символов. Если вместо ширины указывается символ *, принимается дополнительный целочисленный аргумент, задающий соответствующую ширину.

Допустимые флаги описаны в следующей таблице.

0

Добавление нулей вместо пробелов для обеспечения требуемой ширины.

-

Выравнивание результата влево в пределах заданной ширины.

+

Добавление знака +, если число является положительным (чтобы обеспечить соответствие знаку - для отрицательных чисел).

При использовании с %А задает печать закрытых значений.

' ' (пробел)

Добавление дополнительного пробела, если число является положительным (чтобы обеспечить соответствие знаку - для отрицательных чисел).

#

Недопустимый.

Сокращенные обозначения типов

Тип

Описание

Тип BuilderFormat<'T,'Result>

Представляет статически анализируемый формат, связанный с записью в объект StringBuilder. Первый параметр типа указывает аргументы операции форматирования, а последний — тип возвращаемого значения.

Тип BuilderFormat<'T>

Представляет статически анализируемый формат, связанный с записью в объект StringBuilder. Параметр типа обозначает тип аргументов и возвращаемого значения операции формата.

Тип StringFormat<'T,'Result>

Представляет статически анализируемый формат, если при форматировании создается строка. Первый параметр типа указывает аргументы операции форматирования, а последний — тип возвращаемого значения.

Тип StringFormat<'T>

Представляет статически анализируемый формат, если при форматировании создается строка. Параметр типа обозначает тип аргументов и возвращаемого значения операции формата.

Тип TextWriterFormat<'T,'Result>

Представляет статически анализируемый формат, связанный с записью в объект TextWriter. Первый параметр типа указывает аргументы операции форматирования, а последний — тип возвращаемого значения.

Тип TextWriterFormat<'T>

Представляет статически анализируемый формат, связанный с записью в объект TextWriter. Параметр типа обозначает тип аргументов и возвращаемого значения операции формата.

Значения

Значение

Описание

bprintf : StringBuilder -> BuilderFormat<'T> -> 'T

Печатает в StringBuilder.

eprintf : TextWriterFormat<'T> -> 'T

Выполняет печать форматированных выходных данных в stderr.

eprintfn : TextWriterFormat<'T> -> 'T

Выполняет печать форматированных выходных данных в stderr с добавлением новой строки.

failwithf : StringFormat<'T,'Result> -> 'T

Печатает в буфер строк и создает исключение с заданным результатом. Вспомогательные средства печати должны возвращать строки.

fprintf : TextWriter -> TextWriterFormat<'T> -> 'T

Выполняет печать в модуль записи текста.

fprintfn : TextWriter -> TextWriterFormat<'T> -> 'T

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

kbprintf : (unit -> 'Result) -> StringBuilder -> BuilderFormat<'T,'Result> -> 'T

Действует как bprintf, но вызывает указанную функцию для создания результата. См. kprintf.

kfprintf : (unit -> 'Result) -> TextWriter -> TextWriterFormat<'T,'Result> -> 'T

Действует как fprintf, но вызывает указанную функцию для создания результата. См. kprintf.

kprintf : (string -> 'Result) -> StringFormat<'T,'Result> -> 'T

Действует как printf, но вызывает указанную функцию для создания результата. Например, это позволяет выполнять печать не раньше, чем все выходные данные будут введены в канал.

ksprintf : (string -> 'Result) -> StringFormat<'T,'Result> -> 'T

Действует как sprintf, но вызывает указанную функцию для создания результата. См. kprintf.

printf : TextWriterFormat<'T> -> 'T

Выполняет печать форматированных выходных данных в stdout.

printfn : TextWriterFormat<'T> -> 'T

Выполняет печать форматированных выходных данных в stdout с добавлением новой строки.

sprintf : StringFormat<'T> -> 'T

Печатает в строку с помощью внутреннего буфера строки и возвращает результат в виде строки. Вспомогательные средства печати должны возвращать строки.

Платформы

Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows XP с пакетом обновления 3 (SP3), Windows XP x64 с пакетом обновления 2 (SP2), Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2)

Сведения о версии

Среда выполнения F#

Поддерживается в версиях 2.0, 4.0

Silverlight

Поддерживается в версиях 2, 3

См. также

Ссылки

Пространство имен Microsoft.FSharp.Core (F#)

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Добавлены сведения о %+A.

Обратная связь от клиента.