std/strbasics
Источник РедактироватьЭтот модуль предоставляет некоторые высокопроизводительные операции со строками.
Экспериментальный API, может быть изменён.
Процедуры
proc add(x: var string; y: openArray[char]) {....raises: [], tags: [], forbids: [].}- Объединяет
xиyна месте.yне должно перекрываться сxдля поддержки будущихmemcpyоптимизаций. Источник Редактировать func setSlice(s: var string; slice: Slice[int]) {....raises: [], tags: [], forbids: [].}- Версия на месте для
substr.Пример:
import std/sugar var a = "Hello, Nim!" doAssert a.dup(setSlice(7 .. 9)) == "Nim" doAssert a.dup(setSlice(0 .. 0)) == "H" doAssert a.dup(setSlice(0 .. 1)) == "He" doAssert a.dup(setSlice(0 .. 10)) == a doAssert a.dup(setSlice(1 .. 0)).len == 0 doAssert a.dup(setSlice(20 .. -1)).len == 0 doAssertRaises(AssertionDefect): discard a.dup(setSlice(-1 .. 1)) doAssertRaises(AssertionDefect): discard a.dup(setSlice(1 .. 11))
Источник Редактировать func strip(a: var string; leading = true; trailing = true; chars: set[char] = whitespaces) {.inline, ...raises: [], tags: [], forbids: [].}-
Версия на месте для
strip. Удаляет ведущие или хвостовыеchars(по умолчанию: пробелы).Если
leadingравно true (по умолчанию), удаляются ведущиеchars. Еслиtrailingравно true (по умолчанию), удаляются хвостовыеchars. Если оба false, строка остаётся неизменной.Пример:
var a = " vhellov " strip(a) assert a == "vhellov" a = " vhellov " a.strip(leading = false) assert a == " vhellov" a = " vhellov " a.strip(trailing = false) assert a == "vhellov " var c = "blaXbla" c.strip(chars = {'b', 'a'}) assert c == "laXbl" c = "blaXbla" c.strip(chars = {'b', 'a', 'l'}) assert c == "X"Источник Редактировать
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/strbasics.html