Друкарня від WE.UA

Літерал

Загально

Рядок є літеральним і є НЕмутабельним об’єктом. Може бути створений шляхом написання тексту (групи символів), оточений одинарними , подвійними . Ми можемо писати багаторядкові рядки, використовуючи гравіс `. Ось приклад рядкового літералу 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-код символа в рядку.

Статті про вітчизняний бізнес та цікавих людей:

  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

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

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

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

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

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

    Iphone
  • Як подолати жіночу безплідність за допомогою донорських яйцеклітин

    Діагноз "безпліддя" рідко звучить як вирок одразу. Для багатьох жінок саме в цей момент вперше звучить словосполучення "донорські яйцеклітини" — і це часто не кінець шляху до материнства, а якраз новий, реальний шанс.

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

    Донорство
  • Як заспокоїти зубний біль і чому самолікування може призвести до операції?

    Раптовий біль у зубі може призвести до порушення сну та ускладненого вживання їжі. Люди часто приймають таблетки, роблять полоскання або лікуються народними засобами. В таких випадках не варто відкладати візит до стоматолога, адже можуть з’явитись ускладнення.

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

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

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

11Довгочити
335Перегляди
2Підписники
На Друкарні з 16 березня 2024

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

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

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

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

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

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

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

    Programming

Це також може зацікавити:

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

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

Це також може зацікавити: