Стандартна бібліотека мови go і загальні висновки

Стандартна бібліотека мови Go і загальні висновки
Стандартна бібліотека мови Go дуже обширна. На сторінці https://golang.org/pkg наведено вражаючий список всіх пакетів стандартної бібліотеки.

Робота з архівами забезпечується пакетами tar, zip, bzip2, fiate, gzip, izw і ziib, які розділені на дві категорії: archive і compress, хоча пакети з обох категорії забезпечують роботу з архівами відповідних форматів. Для архівів bzip2 чомусь є тільки читання (хоча стандарт bzip2 повно-стю відкритий), для інших - як читання, так і запис.

У категорії container зібрані пакети, що забезпечують роботу з узагальненими контейнерами heap, list, ring і vector. На жаль, будь-якого універсального інтерфейсу роботи з контейнерами (на зразок STL в C ++) в Go немає. Наприклад, щоб додати елемент в контейнер iist, потрібно використовувати методи PushFront або PushBack, а для типу vector - додавати елементи можна тільки в кінець методом Push (чому не PushBack для однаковості?). Для контейнера iist додавання в нього всіх елементів іншого контейнера робиться методами PushFrontList і PushBackList, а для вектора аналогічний метод чомусь називається AppendVector (чому не PushBackVector? ..). Всі контейнери оперують об`єктами типу interfaced, а оскільки порожній інтерфейс реалізують всі об`єкти, то зберігати в контейнерах можна що завгодно. Крім узагальнених контейнерів є спеціалізації для векторів рядків і цілих чисел IntVector і StringVector. Ймовірно, саме ці дві спеціалізації потрібні просто для зручності. У Go немає поняття алгоритмів, як в STL або аналогічних їй бібліотеках. Для найбільш поширених алгоритмів є окремі пакети або функції. Так, пакет sort реалізує сортування масивів, зрізів і контейнерів.

У стандартній бібліотеці є величезна кількість пакетів для криптографії, які покривають практично всі скільки-небудь часто використовувані алгоритми. Не будучи фахівцем складно оцінити якість їх реалізації та зручність використання, але, мабуть, в Google дуже серйозно поставилися до цього аспекту бібліотеки.

На перший погляд дуже цікавим виглядає пакет ebnf, що дозволяє працювати з абстрактними граматиками, записаними в популярному форматі ebnf. На жаль, він не є парсером як таким, а лише перевіряє граматику і перетворює її в абстрактне дерево. Застосувати отримане уявлення до реальних даних ніяк не можна, так що і користі від цього модуля трохи.




Go все частіше використовується для розробки android-додатків, втім, знаходяться умільці, які пишуть на даній мові програмування і досить якісні apps для iOS! Якщо Ви вирішили спробувати свої сили на даному терені і ваш айфон перетворився в "цегла", то зверніться за посиланням посиланням (https://apple4you.ru), де ваш гаджет відремонтують за кілька годин!

Окрема група пакетів дозволяє працювати з різними кодуваннями символів, наприклад, такими як ascii85 (використовується в PostScript і PDF). Unicode підтримується в Go спочатку.




Пакет exec використовується для запуску зовнішніх команд і є зручною обгорткою низкоуровневого виклику os.StartProcess. Має простий синтаксис і дозволяє легко перенаправляти потоки введення-виведення.
Пакет regexp забезпечує роботу з регулярними виразами і містить всі звичайні функції - пошук, заміну, захоплення і підстановку подвираженій і т.д. Мінімальна програма, яка робить заміну однієї підрядка на іншу, виглядає так:
package main
import ( "fmt" - "regexp" - "os" - "strings" -) -
func main () {
reg, error: = regexp.Compile ( "Hello") - if error! = nil {
fmt.Printf ( "Не вдалося створити реєстр. вираз:% s", J
error.String ()) - os.Exit (1);
}
output: = string (reg.ReplaceAll (strings.Bytes ( "Hello world"), strings.Bytes ( "Good by")));
fmt.Println (output);
}

Очевидним мінусом є необхідність використання «обгортки» strings.Bytes (...) навколо кожного рядка, але в цілому робота з регулярними виразами мало чим відрізняється від такої в інших мовах.
Група пакетів для роботи з зображеннями дозволяє працювати з форматами bmp, gif, jpeg, png і tiff.

ІНШЕ

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

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

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

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

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

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

Знайомство з wix фото

Знайомство з wix

Відео: Презентація проекту і Знайомство Золотова Антоніна Ця стаття присвячена створенню настановних пакетів програмних…

» » Стандартна бібліотека мови go і загальні висновки