Go е един от модерните езици за програмиране, който набира популярност в много проучвания като предпочитан от разработчиците език. Go има лесен за използване и разбиране синтаксис, като същевременно осигурява производителност от най-високо ниво.

Можете да използвате Go за създаване на различни приложения, от уеб приложения до приложения за команден ред, облачни услуги и работа в мрежа. Екосистемата на Go от пакети на трети страни поддържа много други случаи на употреба.

Go има повечето от функциите, които бихте очаквали в модерен език: генерични кодове, паралелност, извеждане на типа, събиране на боклук и много други.

Първи стъпки с Go

Можете да стартирате Go на повечето операционни системи. Насочете се към страницата за инсталации и изтеглете предпочитана версия на Go за вашата операционна система.

След като изтеглите и инсталирате Go, можете започнете да пишете и изпълнявате Go код във файлове с a .отивам разширение на файл.

Ще откриете, че Go има повечето функции и голяма част от функционалността на други езици за програмиране. Ако имате предишен опит в програмирането, трябва да намерите Go straightforward.

instagram viewer

Променливи в Go

Го е доста изразителен на основно ниво. Има два начина, по които можете да декларирате променливи в Go. Можете да използвате вар ключова дума за деклариране на променливи от различни типове данни. След като посочите идентификатора, ще трябва да зададете типа данни на променливата.

вар а низ
вар b вътр
вар c всякакви

вар възраст низ = "пет години"
вар възраст = 5// еквивалентно на променлива възраст int = 5
fmt. Println (възраст)

Можеш да използваш всякакви като тип данни, ако не сте сигурни за типа данни на променливата.

Можете също така да декларирате константи с конст ключова дума по начин, подобен на декларирането на променливи.

конст възраст = "пет години"

Невъзможно е да се променят константи след тяхната декларация.

Go предоставя алтернативен начин за деклариране на променливи във функции. Обърнете внимание на използването на двоеточие преди знака за равенство:

функосновен() {
възраст := "пет години" // еквивалентно на var age = "пет години"
}

Условни изрази в Go

Go също има условия за вземане на решения в програмите. Можете да използвате ако и друго изявления във вашия код за обработка на решения.

Ето един пример ако израз, който сравнява две цели числа за равенство:

вар а вътр = 12

ако а == 12 {
fmt. Println("a е равно на дванадесет")
}

Можете да използвате само друго изявления след посочване на an ако изявление и трябва да посочите друго блок след затваряне ако блок:

вар а вътр = 12

ако а == 12 {
fmt. Println("a е равно на дванадесет")
} друго {
fmt. Println("a не е равно на дванадесет")
}

The друго блокът се изпълнява само когато ако изявлението се оценява на невярно. Go не предоставя оператори else-if, но можете да използвате превключвател изрази за сложни условни оператори.

Ето анатомията на a превключвател изявление в Go.

възраст := 7
превключвател възраст {
случай1:
fmt. Println("едно")
случай2:
fmt. Println("две")
случай3:
fmt. Println("три")
по подразбиране:
fmt. Println("нула")
}

Можете да създавате изрази за превключване с превключвател ключова дума, след което можете да посочите различни случаи с случай ключова дума. Можете да управлявате случая по подразбиране, като използвате a по подразбиране ключова дума.

За цикли в Go

Go предоставя for-цикли за повтарящи се задачи и за разлика от повечето езици, в Go няма цикли while или do-while.

Можете да използвате популярния for-цикъл в стил C или диапазон for-цикъл, който поддържат определени структури от данни.

Ето пример за използване на C-style for цикъл в програма Go:

функпринтер() {
за аз := 0; аз <= 3; i++ {
fmt. Println (i)
}
}

Можете да използвате вградения диапазон for-loop на Go върху съставни структури от данни като срезове, карти и масиви. The диапазон функцията връща индекса и елемента от индекса, докато обхожда структурата на данните.

за индекс, стойност := диапазон структура на данни {
}

Масиви в Go

Масивите са един от съставните типове данни в Go. Go масивите са подобни на масивите в стил C и имат определена дължина при деклариране и инстанциране.

Ето как можете да декларирате масиви в Go:

вар пристигане [5]низ
arr := [7]вътр{0, 1, 2, 3, 4, 5, 6}

Можете да използвате индексиране за достъп, присвояване и актуализиране на елементи в позиция на масива:

пристигане [3] = "три"

Кодът по-горе актуализира или вмъква низа като четвъртия запис на обр променлива масив.

Срезове в Go

Go предоставя срезове като алтернатива на масивите за работа с данни с неопределена дължина. Срезовете са подобни на масивите, с изключение на това, че можете да промените дължината на срезовете.

Ще трябва да използвате вградения направи функция за създаване на срез. Предайте типа данни и първоначалната дължина на среза към функцията make.

парче := направи([]низ, 9)
парче [2] = "две"

Можете да използвате функцията за добавяне, за да вмъкнете елементи в срезове. По подразбиране, добавям функция вмъква елементи в края на среза.

парче = добавям(парче, "десет")

Операциите за добавяне на срезове може да са скъпи за работа, тъй като Go създава нов масив при всяка операция за добавяне.

Карти в Go

Картите са вграденият асоциативен (двойка ключ-стойност) тип данни в Go. Можете да използвате направи функция за създаване на карта или проста декларация, където ще трябва да създадете картата.

карти := направи(карта[низ]вътр) // използвайки функцията make
карти := карта[низ]вътр{"едно": 1, "две": 2, "три": 3} // деклариране и инстанциране на карта

Можете да получите достъп до стойности в карта, като посочите ключовете. Освен това можете да вмъкнете стойности в карта, като посочите двойка ключ-стойност.

карти ["един"] = 1// вмъкване в картата
едно := карти ["едно"] // достъп до елемент от картата

Можете да използвате Изтрий функция за премахване на двойки ключ-стойност от картите. The Изтрий функцията приема идентификатора на картата и ключа на двойката, която искате да премахнете:

Изтрий(карти, "един")

Функции в Go

Функциите са инструментът за повторна употреба на код в Go. Можете да декларирате функции с функ ключова дума, последвана от идентификатора на функцията:

функосновен() {
}

Функциите могат да приемат аргументи и да връщат стойности. Ще трябва да посочите типа аргумент заедно с идентификатора за аргументи.

функдобаветениз, г вътр)вътр {
връщане x + y
}

Ще укажете типа на връщане преди кодовия блок на функцията и ще върнете стойност от посочения тип за функции, които връщат стойности.

Структури в Go

Go не е обектно-ориентиран език по замисъл, но можете да внедрите обектно-ориентирани функции в Go използване на структури.

Структурите са дефинирани от потребителя типове за групиране на други типове данни в един обект. Go структурите могат да съдържат стойности от всякакви поддържани от Go типове, а функциите могат да реализират структури.

Ето как можете да декларирате структура в Go:

Тип Игра структура {
Име низ
година вътр
Време за игра float64
Играчи всякакви
Държави карта[низ]низ
}

The Игра struct има полета с типове карта, низ, цяло число и плаваща запетая. Можете да създадете инстанции на структури със стойности по подразбиране или да им присвоите стойности.

вар mko игра // инстанциране на стойност по подразбиране

// инстанциране със стойности
mko := Игра{
Име: "Стойност",
Година: 1231,
Време за игра: 1345412,
Играчи: [2]низ{"9", "неща"},
данни: карта[низ]вътр{"едно": 1, "две": 2, "три": 2},
}

Функциите могат да имплементират и имат достъп до структурни типове. Ще трябва да посочите параметъра struct преди идентификатора на функцията.

функ(g игра)FindGame(име низ) {
a := g. година // достъп до структурни полета
вар b = g. Държави // достъп до структурни полета
}

Когато предадете структура на функция, функцията има достъп до полетата на структурата и функцията става структурен метод.

Go има много случаи на употреба

Научихте основите на езика за програмиране Go и синтаксиса, за да започнете да пишете програми на Go.

Има много полета и приложения, където можете да използвате Go. Go е широко използван като сървърен език и винаги можете да изследвате изграждането на уеб базирани приложения с него.