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

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

Звичайно, складно охопити програмування go повністю в одній статті, але ви дізнаєтеся основи, які допоможуть вам в подальшому. Але перед тим як перейти до розгляду мови, давайте поговоримо про історію його розвитку і структуру. Стаття розрахована в першу чергу на тих, хто вже знає будь-якої Сі подібна мова програмування, тому новачкам матеріал може здатися складним, але їм теж може бути корисно. Я не кажу, що програмування на Go з нуля неможливо, просто для цього потрібна більш докладна література.

Історія розвитку Go

Мова Go елегантний і прагматичний, але деякі його особливості мають сенс тільки під певним історичним контекстом. Історія Go починається з Сі. Багато в чому Сі став основою для створення jаvascript, Ruby, Python, C ++, C # і Java. Компілятори або інтерпретатори деяких з цих мов навіть написані на Сі. Вплив Сі легко помітити в багатьох мовах. Він був розроблений Денисом Рітчі для створення ядра Unix і потім використовувався для створення ядра Linux.

Мова Go був створений легендами епохи Unix і Сі. Працюючи Google, Роберт Грісемер, Роб Пайк і Кен Томпсон були розчаровані в Сі-мовах через їх проблем. Б`ярн Страуструп, створити C ++ говорив так: "Сі дозволяє легко вистрілити собі в ногу, в C ++ це складніше, але якщо ви все ж вистрілите, то вибухне ногу цілком".

Go успадковує багато хорошого від Сі. Ключові слова і сила синтаксису, процедурний підхід - це сильні сторони обох мов. З іншого боку, ручне управління пам`яттю і час компіляції - це проблема Сі. Go вирішує ці проблеми за допомогою збирання сміття, безпечної роботи з пам`яттю і дуже швидкої компіляції.

Мова Java вибирають багато великих компаній з великими командами розробників. Go переймає і цей плюс у Java і намагається бути відмінним мовою для великих груп розробників. Мова Go не має таких недоліків об`єктивно орієнтованого програмування, як успадкування. Все реалізується за допомогою лаконічного синтаксису інтерфейсів.

Також можна знайти певну схожість з динамічними мовами, Go переймає стиль написання коду у Python, зручні налаштування у Ruby і простий паралелізм, вшитий в ядро ​​мови, як у Node.js. Все починалося, як мова, вирішальний деякі проблеми Сі і виросло в прекрасну мову програмування загального призначення.

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

Перед тим як ми перейдемо до прикладів написання програм, хотілося б трохи поговорити про синтаксис мови.

1. Синтаксис мови Go

Найголовніше про що варто сказати - це структура програми. Вона чимось схожа на Java і Python. Програма поділяється на так звані пакети Package, які можна розглядати як альтернативу include або модулів в Python. На додаток package дозволяють налаштовувати області видимості для змінних. Імпортується пакет в програму за допомогою інструкції import:

import Имя_Пакета

Будь-яка програма буде мати змінні. Go - це мова зі строгою типізацією, тому кожну змінну перед використанням потрібно оголосити і вказати її тип:

var ім`я_змінної тип

В іменах змінних можна використовувати російську мову. Але якщо відразу задати змінної значення, то мова сам визначить її тип:

var ім`я_змінної : = значення

Ви також можете створювати покажчики. Для цього просто додайте зірочку перед ім`ям змінної:

var * ім`я_змінної тип

Щоб отримати доступ до змінної, яка була оголошена всередині package з іншого package важливо помітити, що доступні ззовні тільки змінні, написані з великої літери:

Имя_Пакета.ім`я_змінної
Имя_Пакета.імя_функциі




Основні керуючі інструкції дуже схожі за своїм синтаксису зі звичними в Сі:

if умова {
дії
}

Цикл for тут точно такий, як і в Сі, тільки без круглих дужок, так виглядає навіть простіше:

for i: = 0 i lt; = огранічітель- i ++ {
дії
}

Функції golang оголошуються за допомогою директиви func, і в ній можна вказати не тільки параметри, але і повертаються змінні:

func імя_функциі (Прийняті змінні) (Повертаються змінні) {
дії
}

Важливо зауважити, що крапка з комою після рядків не ставиться. Замість ООП класів в Go використовуються структури, які можуть мати поля і методи, а також можуть реалізувати інтерфейси. Щоб оголосити структуру використовується інструкція type:

type імя_структури struct {
ім`я_поля тіп_поля
}

Крім полів, структури можуть мати методи, що дозволяє використовувати їх в якості класів. Оголошення методу трохи відрізняється від функції golang:




func (імя_указателя * тіп_структури) імя_метода () {
дії
}

Створення об`єктів структур відбувається так само, як і звичайних змінних, а звертатися до їхніх полів можна через точку:

імя_об`екта.імя_метода(Параметри)

До полях ми теж звертаємося через точку:

імя_об`екта.ім`я_поля

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

2. Створення Hello World

Напишемо нашу першу програму, як прийнято, це буде програма, яка виводить на екран рядок "Привіт світ!". Ви можете встановити Go в свою систему або ж скористатися онлайн сервісом play.golang.org, який дозволяє виконувати програми прямо в браузері. Ми будемо працювати з онлайн сервісом.

При відкритті сайту ви побачите вже готовий код першої програми:


import ( "fmt")

func main () {
fmt.Println ( "Hello, playground")
}

Як бачите, синтаксис майже відповідає тому, що ми розглядали раніше. У першому рядку ми вказуємо, що цей файл ставитися до пакету main, в другій імпортуємо пакет fmt, що відповідає за стандартні функції введення і виведення. Дужки тут потрібні щоб за один раз імпортувати кілька пакетів, можна просто додати імена через кому.

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

Усередині функції main ми викликаємо функцію бібліотеки fmt, яку імпортували раніше за допомогою синтаксису точки. Метод printLn виводить рядок на екран.

Для мови Go був прийнятий певний синтаксис. Навіть якщо компілятор не видаватиме помилок через невідповідність, його краще дотримуватися. Для імен змінних прийнято використовувати верблюжий синтаксис, тобто FooBar або Foobar замість foo_bar. А також зверніть увагу, що Go не терпить ніяких символів перед відкриває дужкою. Навіть якщо поставити новий рядок, ви отримаєте помилку:

Також в Go стандартизовані відступи, хоча тут немає таких вимог, як в Python.

3. Основи мови Go

Розглянемо роботу зі змінними і структурами. Це буде корисно починаючим користувачам. Як я вже говорив, мова має статичну типізацію. В Python, Ruby або jаvascript потрібно виконувати безліч перевірок на правильність. Go позбавляє від цієї проблеми. Наприклад, усложним наш попередній приклад:

У цьому прикладі, за висновок відповідає нова функція - print. Тут явно зазначено, що їй потрібно передати рядок (string). А в функції main ми створюємо змінну типу string і передаємо її в print. Якщо передати щось інше, отримаємо помилку. Якщо, наприклад, ви поміняєте тип змінної на int, то отримаєте це:

can not use "Привіт світ!" (Type string) as type int in assignment

Також ви отримаєте помилку, якщо оголосили змінну або імпортували пакет, але не використовуєте його. Існує ще безліч речей, які можна зробити за допомогою Go, одна з них - це структури. Давайте ще більше ускладнити нашу програму, створимо структуру site, з полями name і url, яка буде описувати будь-якої сайт:

У структури буде метод print, який виводить рядок "Ласкаво просимо ...". У методі main ми ініціалізували структуру і привласнили її полях значення, а потім викликали метод print.

Мова програмування Go має ще безліч цікавих особливостей і можливостей. І до більшості з них ми навіть не наблизилися. Якщо ви хочете навчитися плавати, вам треба стрибати в воду. Тільки завдяки практиці ви зможете вільно застосовувати цю мову.

висновки

Програмування на Go може стати майбутнім розробки. Це чудова мова, який набрав популярність за відносно короткий період часу. Сподіваюся, інформація з цієї статті була корисною для вас і тепер вам буде легше освоїти цю мову.

Поділися в соціальних мережах:

Схожі
XmlXml
Coder bookCoder book
Нові мови програмування 2016Нові мови програмування 2016
Вивчаємо sass. Міксини.Вивчаємо sass. Міксини.
Кращі книги про linuxКращі книги про linux
MysqlMysql
Келебії докса - введення в програмування на goКелебії докса - введення в програмування на go
Чому вам варто навчитися програмуватиЧому вам варто навчитися програмувати
Програмування під linuxПрограмування під linux
Нові дистрибутиви linux 2017 рокуНові дистрибутиви linux 2017 року
» » Програмування на go