Модуль String
module String: sig .. end
Строки.
Строка s длины n — это индексируемая и неизменяемая последовательность из n байтов. По историческим причинам эти байты называются символами.
Семантика строковых функций определяется через индексы и позиции. Они изображены и описаны следующим образом.
positions 0 1 2 3 4 n-1 n
+---+---+---+---+ +-----+
indices | 0 | 1 | 2 | 3 | ... | n-1 |
+---+---+---+---+ +-----+
- Индекс
iстрокиs— это целое число в диапазоне [0;n-1]. Он обозначаетi-й байт (символ) строкиs, к которому можно обратиться с помощью оператора индексирования строки с постоянным временем выполненияs.[i]. - Позиция
iстрокиs— это целое число в диапазоне [0;n]. Она обозначает точку в начале строки, точку между двумя индексами или точку в конце строки. Индексi-го байта находится между позициямиiиi+1.
Два целых числа start и len задают допустимую подстроку строки s, если len >= 0 и start, start+len являются позициями строки s.
Текст в Unicode. Поскольку строки представляют собой произвольные последовательности байтов, они могут содержать текст в любой кодировке. Однако для хранения текста Unicode в строках OCaml рекомендуется кодировка UTF-8. Именно эту кодировку используют Unicode-последовательности экранирования в строковых литералах. Например, строка "\u{1F42B}" — это кодировка символа Unicode U+1F42B в UTF-8.
Изменяемость в прошлом. До OCaml 4.02 строки можно было изменять на месте, как Bytes.t изменяемые последовательности байтов. В OCaml 4 имелись различные флаги компилятора и параметры конфигурации для поддержки перехода от изменяемых строк к неизменяемым. Эти параметры больше недоступны, и теперь строки всегда неизменяемы.
Версию этого модуля с метками можно использовать так, как описано в модуле StdLabels.
Строки
type t = string
Тип строк.
val make : int -> char -> string
make n c — это строка длины n, в которой по каждому индексу находится символ c.
-
Вызывает исключение
Invalid_argument, еслиn < 0илиn >Sys.max_string_length.
val init : int -> (int -> char) -> string
init n f — это строка длины n, в которой по индексу i находится символ f i (в порядке возрастания индексов).
- Начиная с версии 4.02
-
Вызывает исключение
Invalid_argument, еслиn < 0илиn >Sys.max_string_length.
val empty : string
Пустая строка.
- Начиная с версии 4.13
val length : string -> int
length s — это длина (число байтов/символов) строки s.
val get : string -> int -> char
get s i — это символ с индексом i в строке s. Это то же самое, что написать s.[i].
-
Вызывает исключение
Invalid_argument, еслиiне является индексом строкиs.
val of_char : char -> string
of_char c — это c в виде строки.
- Начиная с версии 5.5
val of_bytes : bytes -> string
Возвращает новую строку, содержащую те же байты, что и заданная последовательность байтов.
- Начиная с версии 4.13
val to_bytes : string -> bytes
Возвращает новую последовательность байтов, содержащую те же байты, что и заданная строка.
- Начиная с версии 4.13
val blit : string -> int -> bytes -> int -> int -> unit
То же, что и Bytes.blit_string, который рекомендуется использовать.
Конкатенация
Примечание. Бинарный оператор (^) объединяет две строки.
val concat : string -> string list -> string
concat sep ss объединяет список строк ss, вставляя строку-разделитель sep между каждой парой строк.
-
Вызывает исключение
Invalid_argument, если длина результата превышаетSys.max_string_lengthбайт.
val cat : string -> string -> string
cat s1 s2 объединяет s1 и s2 (s1 ^ s2).
- Начиная с версии 4.13
-
Вызывает исключение
Invalid_argument, если длина результата превышаетSys.max_string_lengthбайт.
Предикаты и сравнения
val equal : t -> t -> bool
equal s0 s1 является true тогда и только тогда, когда s0 и s1 посимвольно равны.
- Начиная с версии 4.03 (4.05 в StringLabels)
val compare : t -> t -> int
compare s0 s1 упорядочивает s0 и s1 в лексикографическом порядке. compare действует как compare для строк, но может быть эффективнее.
val is_empty : string -> bool
is_empty s является true тогда и только тогда, когда s — пустая строка.
- Начиная с версии 5.5
val starts_with : prefix:string -> string -> bool
starts_with ~prefix s является true тогда и только тогда, когда s начинается с prefix.
- Начиная с версии 4.13
val ends_with : suffix:string -> string -> bool
ends_with ~suffix s является true тогда и только тогда, когда s заканчивается на suffix.
- Начиная с версии 4.13
val includes : affix:string -> string -> bool
includes affix s является true тогда и только тогда, когда affix встречается в s.
Примечание. Если нужно несколько раз проверить одну и ту же строку affix, эффективнее частично применить аргумент ~affix, а затем многократно использовать полученную функцию.
- Начиная с версии 5.5
val contains_from : string -> int -> char -> bool
contains_from s start c является true тогда и только тогда, когда c встречается в s после позиции start.
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией вs.
val rcontains_from : string -> int -> char -> bool
rcontains_from s stop c является true тогда и только тогда, когда c встречается в s до позиции stop+1.
-
Вызывает исключение
Invalid_argument, еслиstop < 0илиstop+1не является допустимой позицией вs.
val contains : string -> char -> bool
contains s c — это String.contains_from s 0 c.
Извлечение подстрок
val sub : string -> int -> int -> string
sub s pos len — это строка длины len, содержащая подстроку строки s, которая начинается с позиции pos и имеет длину len.
-
Вызывает исключение
Invalid_argument, еслиposиlenне задают допустимую подстроку строкиs.
Разделение строк
Разделение по величине
val take_first : int -> string -> string
take_first n s — это первые n байт строки s. Это s, если n >= length s, и "", если n <= 0.
- Начиная с версии 5.5
val take_last : int -> string -> string
take_last n s — это последние n байт строки s. Это s, если n >= length s, и "", если n <= 0.
- Начиная с версии 5.5
val drop_first : int -> string -> string
drop_first n s — это s без первых n байт строки s. Это "", если n >= length s, и s, если n <= 0.
- Начиная с версии 5.5
val drop_last : int -> string -> string
drop_last n s — это s без последних n байт строки s. Это "", если n >= length s, и s, если n <= 0.
- Начиная с версии 5.5
val cut_first : int -> string -> string * string
cut_first n v — это (take_first n v, drop_first n v).
- Начиная с версии 5.5
val cut_last : int -> string -> string * string
cut_last n v — это (drop_last n v, take_last n v).
- Начиная с версии 5.5
Разделение по предикатам
val take_first_while : (char -> bool) -> string -> string
take_first_while p s — это начальные последовательные байты строки s, удовлетворяющие предикату p.
- Начиная с версии 5.5
val take_last_while : (char -> bool) -> string -> string
take_last_while p s — это конечные последовательные байты строки s, удовлетворяющие предикату p.
- Начиная с версии 5.5
val drop_first_while : (char -> bool) -> string -> string
drop_first_while p s — это s без начальных последовательных байтов строки s, удовлетворяющих предикату p.
- Начиная с версии 5.5
val drop_last_while : (char -> bool) -> string -> string
drop_last_while p s — это s без конечных последовательных байтов строки s, удовлетворяющих предикату p.
- Начиная с версии 5.5
val cut_first_while : (char -> bool) -> string -> string * string
cut_first_while p s — это (take_first_while p s, drop_first_while p s).
- Начиная с версии 5.5
val cut_last_while : (char -> bool) -> string -> string * string
cut_last_while p s — это (drop_last_while p s, take_last_while p s).
- Начиная с версии 5.5
Разделение по разделителям
Примечание. Если нужно несколько раз разделить одну и ту же строку sep, эффективнее частично применить аргумент ~sep этих функций, а затем многократно использовать полученную функцию.
val split_first : sep:string -> string -> (string * string) option
split_first sep s — это пара Some (left, right), состоящая из двух (возможно, пустых) подстрок строки s, разделённых первым совпадением разделителя sep в s, или None, если sep не найден. Поиск sep начинается с позиции 0 и использует String.find_first.
Если sep равен "", результат — Some ("", s).
Выполняется инвариант concat sep [left; right] = s.
- Начиная с версии 5.5
val split_last : sep:string -> string -> (string * string) option
split_last sep s — это пара Some (left, right), состоящая из двух (возможно, пустых) подстрок строки s, разделённых последним совпадением разделителя sep в s, или None, если sep не найден. Поиск sep начинается с позиции length s и использует String.find_last.
Если sep равен "", результат — Some (s, "").
Выполняется инвариант concat sep [left; right] = s.
- Начиная с версии 5.5
val split_all : sep:string -> ?drop:(string -> bool) -> string -> string list
split_all sep s — это список всех подстрок строки s, разделённых неперекрывающимися совпадениями разделителя sep, или список [s], если sep не найден. Поиск sep начинается с позиции 0 в порядке возрастания индексов и использует String.find_all.
Подстроки sub, для которых drop sub равно true, не включаются в результат. По умолчанию drop равен Fun.const false.
Если sep равен "", результат — [""; c0; ...; cn; ""], где ci — строка of_char s.[i].
Выполняется инвариант concat sep (split_all sep s) = s.
- Начиная с версии 5.5
val rsplit_all : sep:string -> ?drop:(string -> bool) -> string -> string list
rsplit_all sep s — это список всех подстрок строки s, разделённых неперекрывающимися совпадениями разделителя sep, или [s], если sep не найден. Поиск sep начинается с позиции length s в порядке убывания индексов и использует String.rfind_all.
Подстроки sub, для которых drop sub равно true, не включаются в результат. По умолчанию drop равен Fun.const false.
Если sep равен "", результат — [""; c0; ...; cn; ""], где ci — строка of_char s.[i].
Выполняется инвариант concat sep (rsplit_all sep s) = s.
- Начиная с версии 5.5
val split_on_char : char -> string -> string list
split_on_char sep s — это список всех (возможно, пустых) подстрок строки s, разделённых символом sep. Если s пуст, результатом будет список из одного элемента [""].
Результат функции задаётся следующими инвариантами:
- Список не пуст.
- Конкатенация его элементов с использованием
sepв качестве разделителя возвращает строку, равную входной строке (concat (make 1 sep)).
(split_on_char sep s) = s - Ни одна строка в результате не содержит символ
sep.
- Начиная с версии 4.04 (4.05 в StringLabels)
Преобразование
val map : (char -> char) -> string -> string
map f s — это строка, полученная применением f ко всем символам строки s в порядке возрастания индексов.
- Начиная с версии 4.00
val mapi : (int -> char -> char) -> string -> string
mapi f s подобна String.map, но индекс символа также передаётся в f.
- Начиная с версии 4.02
val fold_left : ('acc -> char -> 'acc) -> 'acc -> string -> 'acc
fold_left f x s вычисляет f (... (f (f x s.[0]) s.[1]) ...) s.[n-1], где n — длина строки s.
- Начиная с версии 4.13
val fold_right : (char -> 'acc -> 'acc) -> string -> 'acc -> 'acc
fold_right f s x вычисляет f s.[0] (f s.[1] ( ... (f s.[n-1] x) ...)), где n — длина строки s.
- Начиная с версии 4.13
val for_all : (char -> bool) -> string -> bool
for_all p s проверяет, удовлетворяют ли все символы строки s предикату p.
- Начиная с версии 4.13
val exists : (char -> bool) -> string -> bool
exists p s проверяет, удовлетворяет ли хотя бы один символ строки s предикату p.
- Начиная с версии 4.13
val trim : string -> string
trim s — это s без начальных и конечных пробельных символов. К пробельным символам относятся: ' ', '\x0C' (перевод страницы), '\n', '\r' и '\t'.
- Начиная с версии 4.00
val escaped : string -> string
escaped s — это s, в которой специальные символы представлены escape-последовательностями согласно лексическим правилам OCaml.
Все символы за пределами печатного диапазона US-ASCII [0x20;0x7E], а также обратная косая черта (0x5C) и двойная кавычка (0x22) заменяются escape-последовательностями.
Функция Scanf.unescaped является левым обратным отображением escaped, то есть Scanf.unescaped (escaped s) = s для любой строки s (если только escaped s не завершается ошибкой).
-
Вызывает исключение
Invalid_argument, если длина результата превышаетSys.max_string_lengthбайт.
val uppercase_ascii : string -> string
uppercase_ascii s — это s, в которой все строчные буквы преобразованы в прописные с использованием набора символов US-ASCII.
- Начиная с версии 4.03 (4.05 в StringLabels)
val lowercase_ascii : string -> string
lowercase_ascii s — это s, в которой все прописные буквы преобразованы в строчные с использованием набора символов US-ASCII.
- Начиная с версии 4.03 (4.05 в StringLabels)
val capitalize_ascii : string -> string
capitalize_ascii s — это s, в которой первый символ преобразован в прописной с использованием набора символов US-ASCII.
- Начиная с версии 4.03 (4.05 в StringLabels)
val uncapitalize_ascii : string -> string
uncapitalize_ascii s — это s, в которой первый символ преобразован в строчной с использованием набора символов US-ASCII.
- Начиная с версии 4.03 (4.05 в StringLabels)
Обход
val iter : (char -> unit) -> string -> unit
iter f s последовательно применяет функцию f ко всем символам строки s. Эквивалентно f s.[0]; f s.[1]; ...; f s.[length s - 1]; ().
val iteri : (int -> char -> unit) -> string -> unit
iteri подобна String.iter, но функции также передаётся индекс соответствующего символа.
- Начиная с версии 4.00
Поиск индексов
val find_first_index : (char -> bool) -> ?start:int -> string -> int option
find_first_index p start s — это индекс первого символа строки s, удовлетворяющего предикату p, начиная с индекса или позиции start (по умолчанию 0) или после неё.
Если start равен length s, результат всегда равен None.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
val find_last_index : (char -> bool) -> ?start:int -> string -> int option
find_last_index p start s — это индекс последнего символа строки s, удовлетворяющего предикату p, начиная с индекса или позиции start (по умолчанию length s) или до неё.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
val index_from : string -> int -> char -> int
index_from s i c — это индекс первого вхождения c в s после позиции i.
-
Вызывает исключение
-
Not_found, еслиcне встречается вsпосле позицииi. -
Invalid_argument, еслиiне является допустимой позицией вs.
-
val index_from_opt : string -> int -> char -> int option
index_from_opt s i c — это индекс первого вхождения c в s после позиции i (если оно есть).
- Начиная с версии 4.05
-
Вызывает исключение
Invalid_argument, еслиiне является допустимой позицией вs.
val rindex_from : string -> int -> char -> int
rindex_from s i c — это индекс последнего вхождения c в s до позиции i+1.
-
Вызывает исключение
-
Not_found, еслиcне встречается вsдо позицииi+1. -
Invalid_argument, еслиi+1не является допустимой позицией вs.
-
val rindex_from_opt : string -> int -> char -> int option
rindex_from_opt s i c — это индекс последнего вхождения c в s до позиции i+1 (если оно есть).
- Начиная с версии 4.05
-
Вызывает исключение
Invalid_argument, еслиi+1не является допустимой позицией вs.
val index : string -> char -> int
index s c — это String.index_from s 0 c.
val index_opt : string -> char -> int option
index_opt s c — это String.index_from_opt s 0 c.
- Начиная с версии 4.05
val rindex : string -> char -> int
rindex s c — это String.rindex_from s (length s - 1) c.
val rindex_opt : string -> char -> int option
rindex_opt s c — это String.rindex_from_opt s (length s - 1) c.
- Начиная с версии 4.05
Поиск подстрок
Примечание. Если нужно несколько раз найти одну и ту же строку sub, эффективнее частично применить аргумент ~sub этих функций, а затем многократно использовать полученную функцию.
val find_first : sub:string -> ?start:int -> string -> int option
find_first sub start s — это начальная позиция первого вхождения sub в s начиная с индекса или позиции start (по умолчанию 0) или после неё.
Если sub равен "", результат равен Some start. Результат функции всегда является допустимым индексом строки s, кроме случая, когда sub равен "", а start равен length s.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
val find_last : sub:string -> ?start:int -> string -> int option
find_last sub start s — это начальная позиция последнего вхождения sub в s до индекса или позиции start (по умолчанию String.length s) или на ней.
Если sub равен "", результат равен Some start. Результат функции всегда является допустимым индексом строки s, кроме случая, когда sub равен "", а start равен length s.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
val find_all : sub:string -> (int -> 'acc -> 'acc) -> ?start:int -> string -> 'acc -> 'acc
find_all sub f start s acc, начиная с acc, свёртывает f в порядке возрастания индексов по всем неперекрывающимся начальным позициям sub в s начиная с индекса или позиции start (по умолчанию 0) или после неё. Результат равен acc, если sub не удалось найти в s.
Если sub равен "", функция f вызывается для всех позиций строки s начиная с start или после неё.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
val rfind_all : sub:string -> (int -> 'acc -> 'acc) -> ?start:int -> string -> 'acc -> 'acc
rfind_all sub f start s acc, начиная с acc, свёртывает f в порядке убывания индексов по всем неперекрывающимся начальным позициям sub в s до индекса или позиции start (по умолчанию String.length s) или на ней. Результат равен acc, если sub не удалось найти в s.
Если sub равен "", функция f вызывается для всех позиций строки s до start или на ней.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией строкиs.
Замена подстрок
Примечание. Чтобы несколько раз заменять одну и ту же строку sub, эффективнее частично применить аргумент ~sub этих функций, а затем многократно использовать полученную функцию.
val replace_first : sub:string -> by:string -> ?start:int -> string -> string
replace_first sub by start s заменяет на by первое вхождение sub в s, начиная с индекса или позиции start (по умолчанию 0).
Если sub — "", функция вставляет by в позицию start.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией вs.
val replace_last : sub:string -> by:string -> ?start:int -> string -> string
replace_last sub by start s заменяет на by последнее вхождение sub в s, начиная с индекса или позиции start (по умолчанию String.length s).
Если sub — "", функция вставляет by в позицию start.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией вs.
val replace_all : sub:string -> by:string -> ?start:int -> string -> string
replace_all sub by start s заменяет на by все неперекрывающиеся вхождения sub в s, начиная с индекса или позиции start (по умолчанию 0). Вхождения ищутся в порядке возрастания индексов.
Если sub — "", функция вставляет by во все позиции, начиная с start.
- Начиная с версии 5.5
-
Вызывает исключение
Invalid_argument, еслиstartне является допустимой позицией вs.
Строки и последовательности
val to_seq : t -> char Seq.t
to_seq s — это последовательность символов строки в порядке возрастания.
- Начиная с версии 4.07
val to_seqi : t -> (int * char) Seq.t
to_seqi s работает как String.to_seq, но также включает соответствующий индекс в кортеж.
- Начиная с версии 4.07
val of_seq : char Seq.t -> t
of_seq s — это строка, составленная из символов последовательности.
- Начиная с версии 4.07
Декодирование и проверка UTF
UTF-8
val get_utf_8_uchar : t -> int -> Uchar.utf_decode
get_utf_8_uchar b i декодирует символ UTF-8 с индексом i в b.
val is_valid_utf_8 : t -> bool
is_valid_utf_8 b имеет значение true тогда и только тогда, когда b содержит корректные данные UTF-8.
UTF-16BE
val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
get_utf_16be_uchar b i декодирует символ UTF-16BE с индексом i в b.
val is_valid_utf_16be : t -> bool
is_valid_utf_16be b имеет значение true тогда и только тогда, когда b содержит корректные данные UTF-16BE.
UTF-16LE
val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
get_utf_16le_uchar b i декодирует символ UTF-16LE с индексом i в b.
val is_valid_utf_16le : t -> bool
is_valid_utf_16le b имеет значение true тогда и только тогда, когда b содержит корректные данные UTF-16LE.
Проверка орфографии
val edit_distance : ?limit:int -> t -> t -> int
edit_distance s0 s1 — это число изменений отдельных символов (вставок, удалений, замен, перестановок), необходимых для преобразования s0 в s1.
Если задано limit, функция возвращает limit сразу после того, как будет установлено, что расстояние между s0 и s1 не меньше limit. Это ускоряет работу, если задан фиксированный предел, например при проверке орфографии.
Функция предполагает, что строки закодированы в UTF-8, и использует Uchar.t в качестве понятия символа. Ошибки декодирования заменяются на Uchar.rep. Нормализация строк до NFC повышает точность результатов.
Примечание. Эта функция реализует более простой алгоритм расстояния Optimal String Alignment (OSA), а не расстояние Дамерау — Левенштейна. С помощью этой функции расстояние между "ca" и "abc" равно 3, а не 2.
- Начиная с версии 5.4
val spellcheck : ?max_dist:(string -> int) -> ((string -> unit) -> unit) -> string -> string list
spellcheck iter_dict s — это строки, перебираемые итератором iter_dict, расстояние редактирования до s которых минимально и не превышает max_dist s. Если возвращено несколько исправлений, они упорядочены так, как встречаются в iter_dict. Значение max_dist s по умолчанию:
-
0, еслиsсодержит от 0 до 2 символов Unicode. -
1, еслиsсодержит от 3 до 4 символов Unicode. -
2в остальных случаях.
Если ваш словарь — список l, подходящее значение iter_dict можно получить с помощью (fun yield -> List.iter yield l).
Предполагается, что все строки закодированы в UTF-8; ошибки декодирования заменяются символами Uchar.rep.
- Начиная с версии 5.4
Двоичное декодирование целых чисел
Функции в этом разделе декодируют целые числа из строк в двоичном формате.
Все приведённые ниже функции вызывают исключение Invalid_argument, если символы, необходимые для декодирования целого числа с индексом i, недоступны.
При кодировании с порядком байтов от младшего к старшему (соответственно, от старшего к младшему) сначала сохраняются байты с младшими (соответственно, старшими) значащими разрядами. Порядок от старшего к младшему также известен как сетевой порядок байтов. Порядок байтов, зависящий от платформы, может быть как от младшего к старшему, так и от старшего к младшему в зависимости от значения Sys.big_endian.
32-битные и 64-битные целые числа представлены типами int32 и int64, которые можно интерпретировать как числа со знаком или без знака.
8-битные и 16-битные целые числа представлены типом int, разрядность которого больше, чем у двоичного представления. При декодировании 8-битных или 16-битных целых чисел и представлении их значениями int дополнительные разряды заполняются знаковым битом (или нулями).
val get_uint8 : string -> int -> int
get_uint8 b i — это беззнаковое 8-битное целое число из b, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int8 : string -> int -> int
get_int8 b i — это знаковое 8-битное целое число из b, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_uint16_ne : string -> int -> int
get_uint16_ne b i — это беззнаковое 16-битное целое число из b с порядком байтов, зависящим от платформы, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_uint16_be : string -> int -> int
get_uint16_be b i — это беззнаковое 16-битное целое число из b с порядком байтов от старшего к младшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_uint16_le : string -> int -> int
get_uint16_le b i — это беззнаковое 16-битное целое число из b с порядком байтов от младшего к старшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int16_ne : string -> int -> int
get_int16_ne b i — это знаковое 16-битное целое число из b с порядком байтов, зависящим от платформы, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int16_be : string -> int -> int
get_int16_be b i — это знаковое 16-битное целое число из b с порядком байтов от старшего к младшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int16_le : string -> int -> int
get_int16_le b i — это знаковое 16-битное целое число из b с порядком байтов от младшего к старшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int32_ne : string -> int -> int32
get_int32_ne b i — это 32-битное целое число из b с порядком байтов, зависящим от платформы, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val hash : t -> int
Нехешированная функция хеширования строк, возвращающая то же значение, что и Hashtbl.hash. Эта функция позволяет передавать данный модуль в качестве аргумента функтору Hashtbl.Make.
- Начиная с версии 5.0
val seeded_hash : int -> t -> int
Хеш-функция строк с начальным значением, возвращающая то же значение, что и Hashtbl.seeded_hash. Эта функция позволяет передавать данный модуль в качестве аргумента функтору Hashtbl.MakeSeeded.
- Начиная с версии 5.0
val get_int32_be : string -> int -> int32
get_int32_be b i — это 32-битное целое число из b с порядком байтов от старшего к младшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int32_le : string -> int -> int32
get_int32_le b i — это 32-битное целое число из b с порядком байтов от младшего к старшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int64_ne : string -> int -> int64
get_int64_ne b i — это 64-битное целое число из b с порядком байтов, зависящим от платформы, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int64_be : string -> int -> int64
get_int64_be b i — это 64-битное целое число из b с порядком байтов от старшего к младшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
val get_int64_le : string -> int -> int64
get_int64_le b i — это 64-битное целое число из b с порядком байтов от младшего к старшему, начинающееся с символа с индексом i.
- Начиная с версии 4.13
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/String.html