Перейти к содержимому
Топаз6.0 · До релиза
Загрузка →

Поиск в документации

Спецификация 6.0

Выберите результат стрелками и нажмите Enter, чтобы открыть его.

Введите имя API, номер диагностики, правило или тему проекта.

    Библиотека

    std.parser.isAsciiWhitespace

    Tests the code point at a string position for ASCII whitespace.

    isAsciiWhitespace(text: string, index: int) -> bool
    Модуль
    std.parser →
    Получатель
    Неприменимо
    Минимальное число аргументов
    2
    Максимальное число аргументов
    2

    Declaration and parameters

    Ссылка

    Доступность

    Включено по умолчанию · Не определено

    Import std.parser in language mode 5.21.

    The current compiler selects std/parser.tpz for this language mode. Availability in other released editions and inclusion in each installed distribution are Pending.

    Получатель

    Ограничения параметров

    The index counts Unicode scalars from zero. A multibyte scalar occupies one position. A combining scalar occupies its own position.

    A present scalar is classified by the corresponding code predicate. Non ASCII scalars return false, including a nonbreaking space and letters outside the ASCII ranges.

    A negative index or an index at or beyond the scalar length returns false. Index zero in an empty string also returns false. These cases do not produce a diagnostic.

    The result agrees with applying the corresponding code predicate to text.codePointAt(index) when it returns Some(code). A None() result means false.

    The text expression is evaluated before the index expression, once each. Classification leaves the string unchanged and performs no I/O.

    Результат

    Эффекты

    Ошибки

    Result and effects

    Ссылка

    Classify the scalar at a zero based position with the corresponding ASCII code predicate. An absent position returns false.

    Related entries

    Ссылка

    std.parser →

    Classify a scalar position

    Ссылка
    Правилоtopaz.stdlib.contract.parser-ascii-positions.rule

    Classify a scalar position

    The index counts Unicode scalars from zero. A multibyte scalar occupies one position. A combining scalar occupies its own position.

    A present scalar is classified by the corresponding code predicate. Non ASCII scalars return false, including a nonbreaking space and letters outside the ASCII ranges.

    A negative index or an index at or beyond the scalar length returns false. Index zero in an empty string also returns false. These cases do not produce a diagnostic.

    The result agrees with applying the corresponding code predicate to text.codePointAt(index) when it returns Some(code). A None() result means false.

    The text expression is evaluated before the index expression, once each. Classification leaves the string unchanged and performs no I/O.

    Причина

    A shared scalar coordinate system lets parser positions pass directly to string operations. An absent position is a failed predicate, so end of input needs no exceptional control flow.

    Keep scalar positions through multibyte and combining text

    Ссылка
    main.tpzKeep scalar positions through multibyte and combining textОткрыть песочницу →
    1. import std.parser
    2. import std.io
    3. let text = "é5éZ  "
    4. for index in ([0, 1, 2, 3, 4, 5, 6]) {
    5. let digit = parser.isAsciiDigit(text, index)
    6. let alpha = parser.isAsciiAlpha(text, index)
    7. let alnum = parser.isAsciiAlnum(text, index)
    8. let space = parser.isAsciiWhitespace(text, index)
    9. io.writeLine("{digit}/{alpha}/{alnum}/{space}")
    10. }
    Ожидаемый выводКод завершения 0
    false/false/false/false
    true/false/true/false
    false/true/true/false
    false/false/false/false
    false/true/true/false
    false/false/false/false
    false/false/false/true
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. false/false/false/false
    2. true/false/true/false
    3. false/true/true/false
    4. false/false/false/false
    5. false/true/true/false
    6. false/false/false/false
    7. false/false/false/true

    Treat negative positions and end of input as false

    Ссылка
    main.tpzTreat negative positions and end of input as falseОткрыть песочницу →
    1. import std.parser
    2. import std.io
    3. let text = "7"
    4. for index in ([-1, 1, 2, 9223372036854775807]) {
    5. let digit = parser.isAsciiDigit(text, index)
    6. let alpha = parser.isAsciiAlpha(text, index)
    7. let alnum = parser.isAsciiAlnum(text, index)
    8. let space = parser.isAsciiWhitespace(text, index)
    9. io.writeLine("{digit}/{alpha}/{alnum}/{space}")
    10. }
    11. let empty = ""
    12. let digit = parser.isAsciiDigit(empty, 0)
    13. let alpha = parser.isAsciiAlpha(empty, 0)
    14. let alnum = parser.isAsciiAlnum(empty, 0)
    15. let space = parser.isAsciiWhitespace(empty, 0)
    16. io.writeLine("{digit}/{alpha}/{alnum}/{space}")
    Ожидаемый выводКод завершения 0
    false/false/false/false
    false/false/false/false
    false/false/false/false
    false/false/false/false
    false/false/false/false
    
    $ topaz run main.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Выполнение завершается. Код завершения 0.

    Ожидаемый стандартный вывод
    1. false/false/false/false
    2. false/false/false/false
    3. false/false/false/false
    4. false/false/false/false
    5. false/false/false/false

    Меню

    Загрузка →