Літерал

Загально

Рядок є літеральним і є НЕмутабельним об’єктом. Може бути створений шляхом написання тексту (групи символів), оточений одинарними , подвійними . Ми можемо писати багаторядкові рядки, використовуючи гравіс `. Ось приклад рядкового літералу Mash Script. Тут hello world! — це рядковий літерал, який присвоюється змінній.

// in single quote
string s = 'hello world!';

// in double quotes
string t = "hello world!";

// multi-line string
string m = `hello
                  world!`;

Out.println(s);
Out.println(t);
Out.println(m);

Вихід:

hello world! 
hello world! 
hello 
                  world!

Template рядки (Шаблони)

У Mash Script можна використовувати форматовані рядки (також: шаблони), аналогічні f-рядкам у Python, але вони підтримуються лише в одинарних лапках '…'. Такий формат дозволяє вставляти вирази прямо всередину рядка за допомогою синтаксису {…}. Ось приклад:

string name = 'Johan';

// Ідентичні (Шаблон та конкатеновані рядки):
string str1 = 'Hello {name}!'; // Hello Johan!
string str2 = 'Hello ' & name & '!'; // Hello Johan!

// Не працює (Через подвійні лапки):
string str3 = "Hello {name}!"; // Hello {name}!

Конкатенація рядків

Конкатенація рядків у Mash Script підтримує різні підходи для зручного з’єднання тексту. Можна використовувати просте розташування рядків поруч для їх автоматичної конкатенації, використовувати оператори + та & або мульти-рядки.

string text = (
  "Hello,"
  "World!"  // Конкатенація
  '!!!'
);

string text2 = `Hello,
                World!
                !!!`;  // Багаторядковий

string text3 = "Hello, " & "World" "!" // конкатенація

// Помилка: шаблони та звичайні рядки не поєднуються автоматично.
string text = (
  "Hello,"
  '{name}!'
);
// Натомість використовуйте оператор конкатенації: &
// *Оператор автоматично викликає метод __string__ у операндів: "Age: " & 10

Escape-послідовності

Використовуються для представлення символів, які не можна вводити безпосередньо, таких як символи нового рядка, табуляції, лапки тощо. Вони починаються зі зворотного слешу \. Ось основні escape-послідовності:

  1. \' – одинарна лапка. Використовується для введення одинарної лапки всередині рядка, що теж обгорнутий в одинарні лапки.

  2. \" – подвійна лапка. Дозволяє ввести подвійні лапки всередині рядка, обгорнутого в подвійні лапки.

  3. \\ – зворотний слеш. Вставляє сам символ зворотного слешу.

  4. \n – новий рядок. Використовується для переходу на наступний рядок.

  5. \t – табуляція. Додає табуляцію в текст.

  6. \r – повернення каретки. Використовується для повернення в початок рядка.

  7. \b – backspace, використовується для видалення останнього символу.

  8. \uXXXX – Юнікод-символ, де XXXX – код символу.

  9. \xNN – символ з ASCII-кодом NN у шістнадцятковому форматі.

"Hello, \"...\"" // Hello, "..."
"_)\r(" // ()
"Fo\bo, Baz" // Fo, Baz

"C:\\user" // C:\user
"C:\user" // Помилка: SyntaxError: truncated \uXXXX escape.

"Hola?\nHello?"
// Hola?
// Hello?

Методи рядків

Ось опис методів рядків у Mash Script:

Тут немає анотацій для параметрів, які приймають тип string.

Методи об’єкту

  1. replace(old, new, count: int=-1) – Заміна всіх входжень old іншим підрядком (new).

  2. split(sep=” ”) → array[string] – Розділення рядка на частини на основі певного роздільника (sep).

  3. count(substr) → int – Підрахунок кількості входжень підрядка в рядку.

  4. join(arr: array) – Об'єднання елементів масиву в один рядок, використовуючи поточний рядок як роздільник.

  5. find(substr, start: int=null, end: int=null) → int – Пошук першого входження підрядка в рядку, повертаючи його індекс або -1, якщо не знайдено.

  6. addr(substr, count: int=1) – Заповнює рядок пробілами або іншими символами справа, щоб досягти певної довжини.

  7. addl(substr, count: int=1) – Додавання підрядка на початок поточного рядка, щоб досягти певної довжини.

  8. startswith(substr) → boolean – Перевірка, чи починається рядок з певного підрядка.

  9. endswith(substr) → boolean – Перевірка, чи закінчується рядок певним підрядком.

  10. expandtabs() – Замінює символи табуляції пробілами відповідно до заданої ширини табуляції.

  11. isempty() → boolean – Перевіряє, чи є рядок порожнім.

  12. format([args], mask=”%”) – Форматує рядок за допомогою вказаних параметрів.

  13. get_chars(index: int, count: int) – Отримання символів з рядка за вказаними індексами.

  14. charat(index: int) – Отримання символа за заданим індексом.

  15. equals(str) → boolean – Перевірка на рівність рядків, ігноруючи регістр ('A' == 'a').

  16. index(substr) – Повертає перший індекс входження підрядка.

  17. rindex(substr) – Повертає останній індекс входження підрядка.

  18. swapcase() – Змінює регістр кожного символа на протилежний.

  19. lower() – Перетворює всі символи рядка на малі.

  20. upper() – Перетворює всі символи рядка на великі.

  21. title() – Робить першу літеру кожного слова великою.

  22. set_char(index: int, char) → string – Встановлює символ на задану позицію в рядку.

  23. set_chars(index: int, count: int, substr) → string – Встановлює групу символів у рядку за вказаними індексами.

  24. isnumber() → boolean – Перевіряє, чи є рядок числом.

  25. isint() → boolean – Перевіряє, чи є рядок цілим числом.

  26. isdigit() → boolean – Перевіряє, чи складається рядок лише з цифр.

  27. isalpha() → boolean – Перевіряє, чи складається рядок лише з літер.

  28. isalnum() → boolean – Перевіряє, чи складається рядок лише з букв та цифр.

  29. islower() → boolean – Перевіряє, чи всі літери в рядку є малими.

  30. isupper() → boolean – Перевіряє, чи всі літери в рядку є великими.

  31. istitle() → boolean – Перевіряє, чи кожне слово в рядку починається з великої літери.

  32. isspace() → boolean – Перевіряє, чи складається рядок лише з пробілів.

Методи класу

  1. string.from_ascii(char) → string – Створює рядок з ASCII-коду.

  2. string.ascii(char) → string – Отримує ASCII-код символа в рядку.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Romashka
Romashka@Romashka

Створюю інтерпретатор Mash Src

117Прочитань
1Автори
1Читачі
На Друкарні з 16 березня

Більше від автора

  • Mash Script: Оголошення функцій

    Ця публікація охоплює основи роботи з функціями в мові програмування Mash Script: оголошення, використання опціональних параметрів, повернення значень, продвинуту типізацію та створення анонімних функцій.

    Теми цього довгочиту:

    Mash Script
  • Mash Script: Базовий синтаксис

    Опис базової структури програми написаної мовою Mash Script

    Теми цього довгочиту:

    Programming

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається