Мова програмування d: особливості

Відео: Яку мову програмування вивчати новачку? - Питання і Відповіді # 2

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

Автоматичне визначення типів

Компілятор D дозволяє пропускати тип змінної всюди, де він в змозі визначити його однозначно.

наприклад:
auto b = Some_complex_function () -

Функція може повертати як просто int, так і якийсь «страшний» шаблонний тип, але знати його не обов`язково - достатньо того, що компілятору завжди відомий повертається тип функції. Така функціональність буде в новому стандарті С ++ 0х, але поки в С ++ її гостро бракує.

Мова програмування D: особливості




Масиви і рядки

Синтаксис оголошення масивів відрізняється від С ++ і набагато більш логічний. Самі масиви знають свій розмір і підтримують зрізи. Є як статичні масиви, так і динамічні, автоматично змінюють розмір при присвоєнні:
int [] a = new int [20] - // Динамічний масив
int [10] b- // Масив постійного розміру



auto sz = a.length- // Масив знає свою довжину
a.length = 100 // А так її можна змінити
int [] c = a [2..6] - // Зріз масиву - частина між елементами
// 2 і 5 включно
a [0..10] = a [10 .. $] - // Знак $ означає останній елемент

Асоціативні масиви вбудовані в базовий мову:
int [string] dictionary- // Ключі - рядки, значення - числа
dictionary [ "hello!"] = 4;
string [] k = dictionary.keys- // Отримуємо все ключі

Рядки є вбудованим базовим типом і за замовчуванням підтримують Unicode. Через особливості реалізації для коректного посимвольного доступу рядок потрібно спочатку конвертувати в формат UTF-32, а потім назад в cp1251 або UTF-16. Це не стосується роботи з рядком як з цілим і зазвичай не викликає складнощів. Проте, цю особливість зазвичай відносять до недоліків мови.

Складальник сміття

Хоча динамічний масив в попередньому випадку і створювався оператором new, звільняти пам`ять вручну не потрібно - в D є автоматичний збирач сміття, як у Java. Однак на відміну від Java при бажанні можна брати управління пам`яттю для потрібного об`єкту повністю на себе або явно вказувати збирачеві сміття, де і коли пора «прибратися».

ІНШЕ

Seed7: бібліотеки фото

Seed7: бібліотеки

Відео: пентагональними призма з насіння льону. П`ятикутна призма. геометричні фігури.Стереометрія Якщо Сі або C ++ без…

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

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

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

Системи зберігання даних hp фото

Системи зберігання даних hp

Відео: 15.05.2014 - Системи зберігання даних HP 3PAR Для будь-яких завдань слід як мінімум провести оцінку економічної…

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

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

Відео: Топ-4 Кращих Мови програмування для Початківців | ТОП Мова програмування Go (https://qoianq.org/) з`явився в 2007…

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

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

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

» » Мова програмування d: особливості