Друкарня від 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-код символа в рядку.

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

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

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

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

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

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

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

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

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

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

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

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

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

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

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

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

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

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

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

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

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

    Programming

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

  • Тестова документація

    Кожен тестувальник регулярно використовує тестову документацію, завдяки ній тестувальник спілкується з розробниками, завдяки ній тестувальник знає що і коли робити.

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

    Qa
  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

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

    Websites
  • Пайтон: дескриптори - що це???

    Можливо, навіть далеко не всі чули, що таке дескриптори, але точно всі використовували їхЯ кажу це так впевнено, оскільки @property є дескриптором

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

    Програмування

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

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

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

  • Тестова документація

    Кожен тестувальник регулярно використовує тестову документацію, завдяки ній тестувальник спілкується з розробниками, завдяки ній тестувальник знає що і коли робити.

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

    Qa
  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

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

    Websites
  • Пайтон: дескриптори - що це???

    Можливо, навіть далеко не всі чули, що таке дескриптори, але точно всі використовували їхЯ кажу це так впевнено, оскільки @property є дескриптором

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

    Програмування