Мова програмування vala: рядки, масиви і керуючі конструкції

Відео: Мова програмування Сі Урок 12 Рядки символьні масиви

рядки
Мова програмування Vala: рядки, масиви і керуючі конструкції

Всі рядки в Vala мають формат cp1251. Тип string задає рядок довільної довжини, яка є незмінним (immutable) об`єктом. Рядок можна оголосити як стандартним чином, так і в стилі «рядки в потрійних лапках», знайомому з мови Python:
string text = "Звичайна рядок";
string str = "" "Рядок в потрійних лапках (" verbatim string ").

У таких рядках не обробляються спеціальні символи n, t, і т.д. Вони можуть містити лапки і займати кілька рядків. "" ";

Рядки, які супроводжуються символом «@», є «строковими шаблонами». У них можна вставляти змінні та вирази за допомогою префікса «$», як це робиться в багатьох скриптових мовах. Значення вбудованих в рядок змінних і виразів автоматично перетворюються до строковому типу. Зручність такого способу форматування рядків важко переоцінити:
int a = 10, b = 20;
string str = @ "$ a * $ b = $ (a * b)" - J
// Строка: "10 * 20 = 200"

Такі шаблони не потрібно плутати із строковими підмішування (інтерпретацією рядки як коду) - вони є всього лише своєрідними макросами.

Отримати подстроку або окремий символ можна за допомогою «зрізів». Негативні значення індексів відраховують-ся від кінця рядка:
string greeting = "hello, world";
string s1 = greeting [7:12] - // = gt; "World"
string s2 = greeting [-4: -2] - // = gt; "Or"



unichar c = greeting [7] - // = gt; `W`

Підтримуються також багато стандартні строкові функції бібліотеки Glib.

масиви

Масиви в Vala можуть бути динамічними (створеними в купі) і статичними (створеними в стеці).
int [] a = new int [10] - // Динамічний масив
int f [10] - // Статичний масив




Для динамічних масивів (але не для статичних) підтримується додавання елементів «на льоту»:
int [] e = {}
e + = 12-
e + = 5
e + = 37-

Потрібно мати на увазі, що така можливість розглядається виключно як ще один спосіб ініціалізації масиву. Стандартні масиви не призначені для використання в якості контейнерів зі змінною кількістю елементів. Для цих цілей краще використовувати класи-колекції з бібліотеки Gee (масиви, списки, хеші тощо).

Підтримуються також багатовимірні масиви:
int [,] c = new int [3,4] -
int [,] d = {
{2, 4, 6, 8},
{3, 5, 7, 9},
{1, 3, 5, 7}};
d [2,3] = 42-

Вбудованих асоціативних масивів в Vala немає, але вони доступні в бібліотеці контейнерів Gee.

Даний не матеріал не дозволить Вам відповісти на питання, де можна поскаржитися на транспорт (https://gnevnaroda.org), тому Вам доведеться підшукати профільний сайт, де розглядаються подібні теми!

керуючі конструкції

Синтаксис керуючих конструкцій if, for, while, switch в Vala повністю аналогічний синтаксису C / C ++. На окрему увагу заслуговує тільки конструкція foreach, що дозволяє легко перебирати елементи масивів і колекцій:
foreach (int a in int_array) {stdout.printf ( "% dn", a) -}

Тип змінної циклу компілятор може визначити автоматично, але іноді його зручніше вказувати для наочності.

ІНШЕ

Juce: контейнери фото

Juce: контейнери

Відео: Batman Arkham City. Серія 16 [2-ий контейнер з титаном. глушилка] Найбільш загальним контейнерним класом в Juce…

Мова програмування vala фото

Мова програмування vala

Hello world! Розгляд будь-якої мови програмування традиційно належить починати з найпростішої програми «Hello…

Взаємодія chaiscript з c ++ фото

Взаємодія chaiscript з c ++

Відео: Jason Turner: Why and How To Add ScriptingІдеологія взаємодії ChaiScript і С ++ Скриптова мова ChaiScript…

» » Мова програмування vala: рядки, масиви і керуючі конструкції