Spec-Zone.ru › Pony

Строка

[Источник]

Строка — это упорядоченная коллекция байтов.

Строки не задают кодировку.

Пример использования некоторых распространенных методов строк:

actor Main
  new create(env: Env) =>
    try
      // construct a new string
      let str = "Hello"

      // make an uppercased version
      let str_upper = str.upper()
      // make a reversed version
      let str_reversed = str.reverse()

      // add " world" to the end of our original string
      let str_new = str.add(" world")

      // count occurrences of letter "l"
      let count = str_new.count("l")

      // find first occurrence of letter "w"
      let first_w = str_new.find("w")
      // find first occurrence of letter "d"
      let first_d = str_new.find("d")

      // get substring capturing "world"
      let substr = str_new.substring(first_w, first_d+1)
      // clone substring
      let substr_clone = substr.clone()

      // print our substr
      env.out.print(consume substr)
  end
class val String is
  Seq[U8 val] ref,
  Comparable[String box] ref,
  Stringable box

Реализует

  • Seq[U8 val] ref
  • Comparable[Строка box] ref
  • Stringable box

Конструкторы

create

[Источник]

Пустая строка. Зарезервировано достаточно места для len байтов.

new ref create(
  len: USize val = 0)
: String ref^

Параметры

  • len: USize val = 0

Возвращает

  • Строка ref^

from_array

[Источник]

Создаёт строку из массива, повторно используя указатель на данные.

new val from_array(
  data: Array[U8 val] val)
: String val^

Параметры

  • data: Массив[U8 val] val

Возвращает

  • Строка val^

from_iso_array

[Источник]

Создаёт строку из массива, повторно используя указатель на данные

new iso from_iso_array(
  data: Array[U8 val] iso)
: String iso^

Параметры

  • data: Массив[U8 val] iso

Возвращает

  • Строка iso^

from_cpointer

[Источник]

Возвращает строку из данных двоичного указателя без копирования. Это необходимо только при использовании функций C-FFI, возвращающих массивы символов, выделенные pony_alloc. Если указатель null, возвращается пустая строка.

new ref from_cpointer(
  str: Pointer[U8 val] ref,
  len: USize val,
  alloc: USize val = 0)
: String ref^

Параметры

  • str: Указатель[U8 val] ref
  • len: USize val
  • alloc: USize val = 0

Возвращает

  • Строка ref^

from_cstring

[Источник]

Возвращает строку из указателя на строку C с нулевым завершением без копирования. Данные не копируются. Это необходимо только при использовании функций C-FFI, возвращающих массивы символов, выделенные pony_alloc. Указатель сканируется до первого нулевого байта, который будет интерпретирован как нулевой терминатор. Обратите внимание, что сканирование не ограничено; данные, на которые указывает указатель, должны быть завершены нулём в выделенном массиве для сохранения безопасности памяти. Если указатель null, возвращается пустая строка.

new ref from_cstring(
  str: Pointer[U8 val] ref)
: String ref^

Параметры

  • str: Указатель[U8 val] ref

Возвращает

  • Строка ref^

copy_cpointer

[Источник]

Создаёт строку путём копирования фиксированного числа байтов из указателя.

new ref copy_cpointer(
  str: Pointer[U8 val] box,
  len: USize val)
: String ref^

Параметры

  • str: Указатель[U8 val] box
  • len: USize val

Возвращает

  • Строка ref^

copy_cstring

[Источник]

Создаёт строку путём копирования строки C с нулевым завершением. Обратите внимание, что сканирование не ограничено; данные, на которые указывает указатель, должны быть завершены нулём в выделенном массиве для сохранения безопасности памяти. Если указатель null, возвращается пустая строка.

new ref copy_cstring(
  str: Pointer[U8 val] box)
: String ref^

Параметры

  • str: Указатель[U8 val] box

Возвращает

  • Строка ref^

from_utf32

[Источник]

Создаёт строку UTF-8 из одного кодового пункта UTF-32.

new ref from_utf32(
  value: U32 val)
: String ref^

Параметры

  • value: U32 val

Возвращает

  • Строка ref^

Публичные функции

push_utf32

[Источник]

Добавляет кодовый пункт UTF-32.

fun ref push_utf32(
  value: U32 val)
: None val

Параметры

  • value: U32 val

Возвращает

  • None val

cpointer

[Источник]

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

fun box cpointer(
  offset: USize val = 0)
: Pointer[U8 val] tag

Параметры

  • offset: USize val = 0

Возвращает

  • Указатель[U8 val] tag

cstring

[Источник]

Возвращает указатель C, совместимый с нуль-терминированной версией строки, безопасный для передачи в функцию FFI, которая не принимает аргумент размера, ожидая нулевой терминатор. Если исходная строка уже завершена нулём, возвращается она; в противном случае строка копируется в новую нуль-терминированную выделение.

fun box cstring()
: Pointer[U8 val] tag

Возвращает

  • Указатель[U8 val] tag

array

[Источник]

Возвращает массив Array[U8], который повторно использует указатель на данные.

fun val array()
: Array[U8 val] val

Возвращает

  • Массив[U8 val] val

iso_array

[Источник]

Возвращает массив Array[U8] iso, который повторно использует указатель на данные.

fun iso iso_array()
: Array[U8 val] iso^

Возвращает

  • Массив[U8 val] iso^

размер

[Источник]

Возвращает длину данных строки в байтах.

fun box size()
: USize val

Возвращает

  • USize val

кодовые точки

[Источник]

Возвращает количество кодовых точек Юникода в строке между двумя смещениями. Диапазон индексов [from .. to) — полуоткрытый.

fun box codepoints(
  from: ISize val = 0,
  to: ISize val = call)
: USize val

Параметры

  • from: ISize val = 0
  • to: ISize val = call

Возвращает

  • USize val

место

[Источник]

Возвращает место, доступное для данных, не включая нулевой терминатор.

fun box space()
: USize val

Возвращает

  • USize val

reserve

[Источник]

Зарезервировать место для len байтов. Дополнительный байт будет зарезервирован для нулевого терминатора.

fun ref reserve(
  len: USize val)
: None val

Параметры

  • len: USize val

Возвращает

  • None val

compact

[Источник]

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

fun ref compact()
: None val

Возвращает

  • None val

recalc

[Источник]

Пересчитывает длину строки. Это необходимо только если строка изменена через вызов FFI. Если байт нулевого терминатора не найден в выделенной длине, размер не изменится.

fun ref recalc()
: None val

Возвращает

  • None val

truncate

[Источник]

Усекает строку до минимума из len и space. Гарантирует наличие нулевого терминатора. Не проверяет нулевые терминаторы внутри строки.

Обратите внимание, что память при этом не освобождается.

fun ref truncate(
  len: USize val)
: None val

Параметры

  • len: USize val

Возвращает

  • None val

trim_in_place

[Источник]

Усекает строку до части себя, охватывая from до to. В отличие от slice, операция не выделяет новую строку и не копирует элементы.

fun ref trim_in_place(
  from: USize val = 0,
  to: USize val = call)
: None val

Параметры

  • from: USize val = 0
  • to: USize val = call

Возвращает

  • None val

trim

[Источник]

Возвращает общую часть этой строки, охватывающую from до to. И исходная, и новая строка являются неизменяемыми, поскольку они разделяют память. Операция не выделяет новый указатель строки и не копирует элементы.

fun val trim(
  from: USize val = 0,
  to: USize val = call)
: String val

Параметры

  • from: USize val = 0
  • to: USize val = call

Возвращает

  • Строка val

chop

[Source]

Разрезает строку пополам в указанной точке разбиения и возвращает обе левую и правую части. Исходная строка обрезается на месте и возвращается как левая часть. Если точка разбиения больше, чем длина строки, левая часть — это исходная строка, а правая часть — новая пустая строка. Обе строки изолированы и изменяемы, так как они не используют общую память. Операция не выделяет новый указатель на строку и не копирует элементы.

fun iso chop(
  split_point: USize val)
: (String iso^ , String iso^)

Параметры

  • split_point: USize значение

Возвращаемое значение

  • (Строка iso^ , Строка iso^)

unchop

[Source]

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

fun iso unchop(
  b: String iso)
: ((String iso^ , String iso^) | String iso^)

Параметры

  • b: Строка iso

Возвращаемое значение

  • ((Строка iso^ , Строка iso^) | Строка iso^)

is_null_terminated

[Source]

Возвращает true, если строка имеет нуль-терминатор и её безопасно передать в функцию FFI, которая не принимает аргумент размера, ожидая нуль-терминатор. Этот метод проверяет, что после последней заполненной позиции в строке есть нулевой байт, но не проверяет наличие других нулевых байтов, которые могут присутствовать ранее в содержимом строки. Если вам нужна скопированная строка с нуль-терминатором, используйте метод clone.

fun box is_null_terminated()
: Bool val

Возвращаемое значение

  • Булево значение

utf32

[Source]

Возвращает UTF32 представление символа в заданном смещении и количество байтов, необходимых для кодирования этого символа. Если смещение не указывает на начало корректной UTF8 кодировки, возвращает 0xFFFD (замещающий символ Юникода) и длину 1. Вызывает ошибку, если смещение находится за пределами границ.

fun box utf32(
  offset: ISize val)
: (U32 val , U8 val) ?

Параметры

  • offset: ISize значение

Возвращаемое значение

  • (U32 значение , U8 значение) ?

apply

[Source]

Возвращает i-й байт. Вызывает ошибку, если индекс находится за пределами границ.

fun box apply(
  i: USize val)
: U8 val ?

Параметры

  • i: USize значение

Возвращаемое значение

  • U8 значение ?

update

[Source]

Изменяет i-й байт. Вызывает ошибку, если индекс находится за пределами границ.

fun ref update(
  i: USize val,
  value: U8 val)
: U8 val ?

Параметры

  • i: USize значение
  • value: U8 значение

Возвращаемое значение

  • U8 значение ?

at_offset

[Source]

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

fun box at_offset(
  offset: ISize val)
: U8 val ?

Параметры

  • offset: ISize значение

Возвращаемое значение

  • U8 значение ?

update_offset

[Source]

Изменяет байт в строке, возвращая предыдущий байт в этом смещении. Вызывает ошибку, если смещение находится за пределами границ.

fun ref update_offset(
  offset: ISize val,
  value: U8 val)
: U8 val ?

Параметры

  • offset: ISize значение
  • value: U8 значение

Возвращаемое значение

  • U8 значение ?

clone

[Source]

Возвращает копию строки. Результирующая строка имеет нуль-терминатор, даже если исходная не имеет.

fun box clone()
: String iso^

Возвращаемое значение

  • Строка iso^

repeat_str

[Source]

Возвращает копию строки, повторённую num раз с необязательным разделителем между повторениями.

fun box repeat_str(
  num: USize val = 1,
  sep: String val = "")
: String iso^

Параметры

  • num: USize значение = 1
  • sep: Строка значение = ""

Возвращаемое значение

  • Строка iso^

mul

[Source]

Возвращает копию строки, повторённую num раз.

fun box mul(
  num: USize val)
: String iso^

Параметры

  • num: USize значение

Возвращаемое значение

  • Строка iso^

find

[Source]

Возвращает индекс n-го вхождения s в строке, начиная с начала. Вызывает ошибку, если нет n-го вхождения s или s пустая.

fun box find(
  s: String box,
  offset: ISize val = 0,
  nth: USize val = 0)
: ISize val ?

Параметры

  • s: Строка коробка
  • offset: ISize значение = 0
  • nth: USize значение = 0

Возвращаемое значение

  • ISize значение ?

rfind

[Source]

Возвращает индекс n-го вхождения s в строке, начиная с конца. offset представляет собой максимальный индекс, включённый в поиск. Вызывает ошибку, если нет n-го вхождения s или s пустая.

fun box rfind(
  s: String box,
  offset: ISize val = call,
  nth: USize val = 0)
: ISize val ?

Параметры

  • s: Строка коробка
  • offset: ISize значение = вызов
  • nth: USize значение = 0

Возвращаемое значение

  • ISize значение ?

contains

[Source]

Возвращает true, если содержит s в качестве подстроки, иначе false.

fun box contains(
  s: String box,
  offset: ISize val = 0,
  nth: USize val = 0)
: Bool val

Параметры

  • s: Строка коробка
  • offset: ISize значение = 0
  • nth: USize значение = 0

Возвращаемое значение

  • Булево значение

count

[Source]

Подсчитывает количество неперекрывающихся вхождений s в строке.

fun box count(
  s: String box,
  offset: ISize val = 0)
: USize val

Параметры

  • s: Строка коробка
  • offset: ISize значение = 0

Возвращаемое значение

  • USize значение

at

[Source]

Возвращает true, если подстрока s присутствует в заданном смещении.

fun box at(
  s: String box,
  offset: ISize val = 0)
: Bool val

Параметры

  • s: Строка коробка
  • offset: ISize значение = 0

Возвращаемое значение

  • Булево значение

delete

[Source]

Удаляет len байтов в указанном смещении, сжимая строку на месте.

fun ref delete(
  offset: ISize val,
  len: USize val = 1)
: None val

Параметры

  • offset: ISize значение
  • len: USize значение = 1

Возвращаемое значение

  • None значение

substring

[Source]

Возвращает подстроку. Диапазон индексов [from .. to) является полуоткрытым. Возвращает пустую строку, если в диапазоне ничего нет.

Обратите внимание, что эта операция выделяет новую строку для возврата. Для аналогичных операций, которые не выделяют новую строку, см. trim и trim_in_place.

fun box substring(
  from: ISize val,
  to: ISize val = call)
: String iso^

Параметры

  • from: ISize значение
  • to: ISize значение = вызов

Возвращаемое значение

  • Строка iso^

lower

[Source]

Возвращает строку в нижнем регистре.

fun box lower()
: String iso^

Возвращаемое значение

  • Строка iso^

lower_in_place

[Source]

Преобразует строку в нижний регистр. В настоящее время поддерживается только ASCII.

fun ref lower_in_place()
: None val

Возвращаемое значение

  • None значение

upper

[Source]

Возвращает строку в верхнем регистре. В настоящее время поддерживается только ASCII.

fun box upper()
: String iso^

Возвращаемое значение

  • Строка iso^

upper_in_place

[Source]

Преобразует строку в верхний регистр.

fun ref upper_in_place()
: None val

Возвращаемое значение

  • None значение

reverse

[Source]

Возвращает перевернутую версию строки.

fun box reverse()
: String iso^

Возвращает

  • Строка iso^

reverse_in_place

[Исходный код]

Изменяет порядок байтов в строке. Необходимо изменить для корректной обработки UTF-8.

fun ref reverse_in_place()
: None val

Возвращает

  • None val

push

[Исходный код]

Добавляет байт в конец строки.

fun ref push(
  value: U8 val)
: None val

Параметры

  • value: U8 val

Возвращает

  • None val

pop

[Исходный код]

Удаляет байт из конца строки.

fun ref pop()
: U8 val ?

Возвращает

  • U8 val ?

unshift

[Исходный код]

Добавляет байт в начало строки.

fun ref unshift(
  value: U8 val)
: None val

Параметры

  • value: U8 val

Возвращает

  • None val

shift

[Исходный код]

Удаляет байт из начала строки.

fun ref shift()
: U8 val ?

Возвращает

  • U8 val ?

append

[Исходный код]

Добавляет элементы из последовательности, начиная с заданного смещения.

fun ref append(
  seq: ReadSeq[U8 val] box,
  offset: USize val = 0,
  len: USize val = call)
: None val

Параметры

  • seq: ReadSeq[U8 val] box
  • offset: USize val = 0
  • len: USize val = call

Возвращает

  • None val

concat

[Исходный код]

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

fun ref concat(
  iter: Iterator[U8 val] ref,
  offset: USize val = 0,
  len: USize val = call)
: None val

Параметры

  • iter: Iterator[U8 val] ref
  • offset: USize val = 0
  • len: USize val = call

Возвращает

  • None val

clear

[Исходный код]

Усекает строку до нулевой длины.

fun ref clear()
: None val

Возвращает

  • None val

insert

[Исходный код]

Возвращает версию строки с данной строкой, вставленной в заданном смещении.

fun box insert(
  offset: ISize val,
  that: String val)
: String iso^

Параметры

  • offset: ISize val
  • that: Строка val

Возвращает

  • Строка iso^

insert_in_place

[Исходный код]

Вставляет заданную строку в заданное смещение. Добавляет строку, если смещение вне границ.

fun ref insert_in_place(
  offset: ISize val,
  that: String box)
: None val

Параметры

  • offset: ISize val
  • that: Строка box

Возвращает

  • None val

insert_byte

[Исходный код]

Вставляет байт в заданное смещение. Добавляет, если смещение вне границ.

fun ref insert_byte(
  offset: ISize val,
  value: U8 val)
: None val

Параметры

  • offset: ISize val
  • value: U8 val

Возвращает

  • None val

cut

[Исходный код]

Возвращает версию строки с удалённым заданным диапазоном. Диапазон индексов [from .. to) полуоткрытый.

fun box cut(
  from: ISize val,
  to: ISize val = call)
: String iso^

Параметры

  • from: ISize val
  • to: ISize val = call

Возвращает

  • Строка iso^

cut_in_place

[Исходный код]

Удаляет из строки указанный диапазон. Диапазон индексов [from .. to) полуоткрытый.

fun ref cut_in_place(
  from: ISize val,
  to: ISize val = call)
: None val

Параметры

  • from: ISize val
  • to: ISize val = call

Возвращает

  • None val

remove

[Исходный код]

Удаляет все вхождения s из строки. Возвращает количество удаленных вхождений.

fun ref remove(
  s: String box)
: USize val

Параметры

  • s: Строка box

Возвращает

  • USize val

replace

[Исходный код]

Заменяет до n вхождений from в this на to. Если n равно 0, будут заменены все вхождения. Возвращает количество заменённых вхождений.

fun ref replace(
  from: String box,
  to: String box,
  n: USize val = 0)
: USize val

Параметры

  • from: Строка box
  • to: Строка box
  • n: USize val = 0

Возвращает

  • USize val

split_by

[Исходный код]

Разбивает строку на массив строк, ограниченных разделителем delim в исходной строке. Если n > 0, то количество разбиений ограничено n.

Пример:

let original: String = "<b><span>Hello!</span></b>"
let delimiter: String = "><"
let split_array: Array[String] = original.split_by(delimiter)
env.out.print("OUTPUT:")
for value in split_array.values() do
  env.out.print(value)
end

// OUTPUT:
// <b
// span>Hello!</span
// b>

Смежные разделители приводят к записи нулевой длины в массиве. Например, "1CutCut2".split_by("Cut") => ["1", "", "2"].

Пустой разделитель приводит к массиву, содержащему один элемент, равный всей строке.

Если вы хотите разбить строку на каждый отдельный символ из delim, используйте split.

fun box split_by(
  delim: String val,
  n: USize val = call)
: Array[String val] iso^

Параметры

  • delim: Строка val
  • n: USize val = call

Возвращает

  • Массив[Строка val] iso^

split

[Исходный код]

Разбивает строку на массив строк по любому символу в строке разделителей. По умолчанию, строка разбивается по пробелам. Если n > 0, то количество разбиений ограничено n.

Пример:

let original: String = "name,job;department"
let delimiter: String = ".,;"
let split_array: Array[String] = original.split(delimiter)
env.out.print("OUTPUT:")
for value in split_array.values() do
  env.out.print(value)
end

// OUTPUT:
// name
// job
// department

Смежные разделители приводят к записи нулевой длины в массиве. Например, "1,,2".split(",") => ["1", "", "2"].

Если вы хотите разбить строку на всю строку разделителя delim, используйте split_by.

fun box split(
  delim: String val = "     
",
  n: USize val = 0)
: Array[String val] iso^

Параметры

  • delim: Строка val = " "
  • n: USize val = 0

Возвращает

  • Массив[Строка val] iso^

strip

[Исходный код]

Удаляет все ведущие и завершающие символы из строки, которые находятся в s.

fun ref strip(
  s: String box = "     
")
: None val

Параметры

  • s: Строка box = " "

Возвращает

  • None val

rstrip

[Исходный код]

Удаляет все завершающие символы в строке, которые находятся в s. По умолчанию, удаляются завершающие пробелы.

fun ref rstrip(
  s: String box = "     
")
: None val

Параметры

  • s: Строка box = " "

Возвращает

  • None val

lstrip

[Исходный код]

Удаляет все ведущие символы в строке, которые находятся в s. По умолчанию, удаляются ведущие пробелы.

fun ref lstrip(
  s: String box = "     
")
: None val

Параметры

  • s: Строка box = " "

Возвращает

  • None val

add

[Исходный код]

Возвращает строку, являющуюся конкатенацией этой и that.

fun box add(
  that: String box)
: String val

Параметры

  • that: Строка box

Возвращает

  • Строка val

join

[Исходный код]

Возвращает строку, являющуюся конкатенацией строк в data, используя эту строку в качестве разделителя.

fun box join(
  data: Iterator[Stringable box] ref)
: String iso^

Параметры

  • data: Iterator[Stringable box] ref

Возвращает

  • Строка iso^

compare

[Исходный код]

Лексическое сравнение двух строк.

fun box compare(
  that: String box)
: (Less val | Equal val | Greater val)

Параметры

  • that: Строка box

Возвращает

  • (Меньше val | Равно val | Больше val)

[Источник]

Лексически сравнивает не более n байтов подстроки this, начиная с позиции offset, с подстрокой that, начиная с позиции that_offset. Сравнение регистрозависимое, если ignore_case равно true.

Если подстрока this является правильным префиксом подстроки that, то this меньше that. Аналогично, если that является правильным префиксом this, то this больше that.

И offset, и that_offset могут быть отрицательными, в этом случае смещения вычисляются от конца строки.

Если n + offset больше длины this, или n + that_offset больше длины that, то количество сравниваемых позиций будет уменьшено до длины самой длинной подстроки.

Необходимо сделать UTF-8 безопасным.

fun box compare_sub(
  that: String box,
  n: USize val,
  offset: ISize val = 0,
  that_offset: ISize val = 0,
  ignore_case: Bool val = false)
: (Less val | Equal val | Greater val)

Параметры

  • that: Строка box
  • n: USize val
  • offset: ISize val = 0
  • that_offset: ISize val = 0
  • ignore_case: Bool val = false

Возвращаемое значение

  • (Меньше val | Равно val | Больше val)

eq

[Источник]

Возвращает true, если две строки имеют одинаковое содержимое.

fun box eq(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращаемое значение

  • Bool val

lt

[Источник]

Возвращает true, если эта строка лексически меньше, чем that. Необходимо сделать UTF-8 безопасным.

fun box lt(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращаемое значение

  • Bool val

le

[Источник]

Возвращает true, если эта строка лексически меньше или равна, чем that. Необходимо сделать UTF-8 безопасным.

fun box le(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращаемое значение

  • Bool val

offset_to_index

[Источник]

fun box offset_to_index(
  i: ISize val)
: USize val

Параметры

  • i: ISize val

Возвращаемое значение

  • USize val

bool

[Источник]

fun box bool()
: Bool val ?

Возвращаемое значение

  • Bool val ?

i8

[Источник]

fun box i8(
  base: U8 val = 0)
: I8 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • I8 val ?

i16

[Источник]

fun box i16(
  base: U8 val = 0)
: I16 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • I16 val ?

i32

[Источник]

fun box i32(
  base: U8 val = 0)
: I32 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • I32 val ?

i64

[Источник]

fun box i64(
  base: U8 val = 0)
: I64 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • I64 val ?

i128

[Источник]

fun box i128(
  base: U8 val = 0)
: I128 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • I128 val ?

ilong

[Источник]

fun box ilong(
  base: U8 val = 0)
: ILong val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • ILong val ?

isize

[Источник]

fun box isize(
  base: U8 val = 0)
: ISize val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • ISize val ?

u8

[Источник]

fun box u8(
  base: U8 val = 0)
: U8 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • U8 val ?

u16

[Источник]

fun box u16(
  base: U8 val = 0)
: U16 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • U16 val ?

u32

[Источник]

fun box u32(
  base: U8 val = 0)
: U32 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • U32 val ?

u64

[Источник]

fun box u64(
  base: U8 val = 0)
: U64 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • U64 val ?

u128

[Источник]

fun box u128(
  base: U8 val = 0)
: U128 val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • U128 val ?

ulong

[Источник]

fun box ulong(
  base: U8 val = 0)
: ULong val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • ULong val ?

usize

[Источник]

fun box usize(
  base: U8 val = 0)
: USize val ?

Параметры

  • base: U8 val = 0

Возвращаемое значение

  • USize val ?

read_int[A: ((I8 val | I16 val | I32 val | I64 val | I128 val | ILong val | ISize val | U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Integer[A] val)]

[Источник]

Считывает целое число из указанной позиции в этой строке. Возвращает значение прочитанного целого числа и количество потребленных байтов. Параметр base определяет используемую систему счисления; 0 означает использование префикса (если он есть) для определения системы счисления (2, 10 или 16). Если в указанной позиции целое число не найдено, возвращается (0, 0), так как ни один символ не был использован. Целое число вне диапазона для целевого типа приводит к ошибке. Разрешен знак минус перед целым числом. Разрешены символы подчеркивания в целом числе и они игнорируются.

fun box read_int[A: ((I8 val | I16 val | I32 val | 
    I64 val | I128 val | ILong val | 
    ISize val | U8 val | U16 val | 
    U32 val | U64 val | U128 val | 
    ULong val | USize val) & Integer[A] val)](
  offset: ISize val = 0,
  base: U8 val = 0)
: (A , USize val) ?

Параметры

  • offset: ISize val = 0
  • base: U8 val = 0

Возвращаемое значение

  • (A , USize val) ?

f32

[Источник]

Преобразует эту строку, начиная с заданного смещения, в 32-битное число с плавающей точкой (F32).

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

Примеры:

"1.5".f32()? == F32(1.5)
"1.19208e-07".f32()? == F32(1.19208e-07)
"NaN".f32()?.nan() == true
fun box f32(
  offset: ISize val = 0)
: F32 val ?

Параметры

  • offset: ISize val = 0

Возвращаемое значение

  • F32 val ?

f64

[Источник]

Преобразует эту строку, начиная с заданного смещения, в 64-битное число с плавающей точкой (F64).

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

Примеры:

"1.5".f64()? == F64(1.5)
"1.19208e-07".f64()? == F64(1.19208e-07)
"Inf".f64()?.infinite() == true
fun box f64(
  offset: ISize val = 0)
: F64 val ?

Параметры

  • offset: ISize val = 0

Возвращаемое значение

  • F64 val ?

hash

[Источник]

fun box hash()
: USize val

Возвращает

  • USize val

hash64

[Источник]

fun box hash64()
: U64 val

Возвращает

  • U64 val

string

[Источник]

fun box string()
: String iso^

Возвращает

  • Строка iso^

значения

[Источник]

Возвращает итератор по байтам в строке.

fun box values()
: StringBytes ref^

Возвращает

  • StringBytes ref^

runes

[Источник]

Возвращает итератор по кодовым точкам в строке.

fun box runes()
: StringRunes ref^

Возвращает

  • StringRunes ref^

ge

fun box ge(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращает

  • Булево val

gt

fun box gt(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращает

  • Булево val

ne

fun box ne(
  that: String box)
: Bool val

Параметры

  • that: Строка box

Возвращает

  • Булево val

© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/builtin-String

Spec-Zone.ru

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