Каждый язык программирования имеет свою интерпретацию \n
и \r
. Юникод поддерживает несколько символов, которые могут представлять новую строку.
Пробел - это один из символов U + 006E (n), U + 0072 (r) или U + 0074 (t), обозначающих значения Unicode U + 000A (LF), U + 000D (CR) или U + 0009 (HT) соответственно.
Основываясь на этом утверждении, я бы сказал, что символ Rust является символом новой строки, если это либо \n
, либо \r
. В Windows это может быть комбинация \r
и \n
. Хотя я не уверен.
А как насчет следующего?
- Символ следующей строки (U + 0085)
- Символ-разделитель строк (U + 2028)
- Символ-разделитель абзацев (U + 2029)
На мой взгляд, нам не хватает чего-то вроде char.is_new_line()
. Я просмотрел Категории символов Юникода, но не смог найти определение для новые строки.
Должен ли я придумывать собственное определение того, что такое символ новой строки Unicode?