Alisher Fozilov 12 июля 2021

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠ΅ΠΉ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ для создатСлСй Go Π±Ρ‹Π»Π° простота. Код Π½Π° этом языкС Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ – ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π’ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ руководствС ΠΌΡ‹ окунСмся Π² основы Go Π·Π° полчаса.
πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Установка Go

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Go.

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

НаТимаСм на Download Go.

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ для своСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ скачиваСм.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Windows Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установщик. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Linux, придСтся Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ скачанный Π°Ρ€Ρ…ΠΈΠ² Π² /usr/local/go ΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ /usr/local/go/bin Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды $PATH . ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура ΠΏΠ°ΠΏΠΎΠΊ:

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π§Ρ‚ΠΎΠ± ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установкС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ go version Π² консоли ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Установка Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°

Go поддСрТиваСтся Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΊΠΎΠ΄Π° (IDE), ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

  • Goland
  • Visual Studio Code
  • vim

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список IDE доступСн ΠΏΠΎ сылкС: https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ helloworld. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² Π½Π΅Π΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

        go mod init helloworld
    

Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ go.mod.

Код Π½Π° Go Π»Π΅ΠΆΠΈΡ‚ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ – это Π½Π°Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Go с Ρ„Π°ΠΉΠ»ΠΎΠΌ go.mod Π² ΠΊΠΎΡ€Π½Π΅. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» опрСдСляСт ΠΏΡƒΡ‚ΡŒ модуля ΠΈ Π½Π°Π±ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π”Π°Π»Π΅Π΅ создадим Ρ„Π°ΠΉΠ» main.go ΠΈ запишСм Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

main.go
        package main

func main() {
  println("Hello World")
}

    

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ консоль ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π”Π°Π»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π³Π΄Π΅ располоТСн Ρ„Π°ΠΉΠ» main.go ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

        go run main.go
    

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π’Ρ‹ написали ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Go, поздравляСм!

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Ρ‡Ρ‚ΠΎ здСсь происходит:

  • Ѐункция main – входная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ Π½Π΅Π΅ основная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° начинаСтся ΠΈ Π² Π½Π΅ΠΉ ΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.
  • println – функция, выводящая тСкст Π½Π° экран консоли. Для Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ + ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ круглая скобка + Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ + Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ круглая скобка + ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ скобки {}.
  • По достиТСнии послСднСй Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Код, листинги ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ…) скобок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… функция main Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΡ‰Π΅Π½Π° для краткости.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Go Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ использования.

Π’ Go нСльзя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ – ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ собСрСтся.

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Go:

        var number int
    

ΠœΡ‹ объявили ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ number с Ρ‚ΠΈΠΏΠΎΠΌ int. int – Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅ число.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

  • bool
  • string
  • int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr
  • byte // псСвдоним для uint8
  • rune // псСвдоним для int32
  • float32 float64
  • complex64 complex128

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ устанавливаСтся Π΅Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Для int это 0, для float – 0.0, для string – "" (пустая строка), для bool – false.

Если Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ извСстно Π²ΠΎ врСмя объявлСния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ записью:

        number := 0
// эквивалСнтно
var number = 0

    

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ послС Π΅Π΅ объявлСния, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ =:

        var number, secondNumber int
number = 15
secondNumber = number
println(number)       // Π’Ρ‹Π²ΠΎΠ΄: 15
println(secondNumber) // Π’Ρ‹Π²ΠΎΠ΄: 15

    

Над ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². НапримСр, числа ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ, Π° строки ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Бписок ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Go:

πŸƒ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Go с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции

Для управлСния Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ строки ΠΊΠΎΠ΄Π° исполнятся ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции. Π”Π°Π²Π°ΠΉΡ‚Π΅ пСрСчислим основныС:

  • Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
  • УсловиС
  • Π¦ΠΈΠΊΠ»Ρ‹

Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ исполняСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, строка Π·Π° строкой.

УсловиС

Для исполнСния участка ΠΊΠΎΠ΄Π° Π² зависимости ΠΎΡ‚ условия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ условная конструкция if:

        number := 15
secondNumber := 10
if number < secondNumber {
  println("ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ")
}

    

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° экран, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ условиС Π»ΠΎΠΆΠ½ΠΎ. На мСстС условия ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всС, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° bool.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполнится ΠΏΡ€ΠΈ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ условия ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ else:

        if number < secondNumber {
  println("ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ")
} else if number > secondNumber {
  println("Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число мСньшС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ")
} else {
  println("числа Ρ€Π°Π²Π½Ρ‹")
}

    

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ конструкции управлСния if имССтся конструкция switch, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

        switch 200 {
case 100:
  println("число Ρ€Π°Π²Π½ΠΎ 100")
case 200:
  println("число Ρ€Π°Π²Π½ΠΎ 200") // Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ это
}

    

switch ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 200 ΠΈ ΠΈΡ‰Π΅Ρ‚ case, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ значСния ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈ выполняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ участок ΠΊΠΎΠ΄Π°.

switch Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° if. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с if:

        switch {
case number < secondNumber:
  println("ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ")
case number > secondNumber:
  println("Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число мСньшС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ")
default:
  println("числа Ρ€Π°Π²Π½Ρ‹")
}

    

Роль else здСсь ΠΈΠ³Ρ€Π°Π΅Ρ‚ слово default. Оно Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡ€ΠΈ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· условий.

Π¦ΠΈΠΊΠ»Ρ‹

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: для повторСния участков ΠΊΠΎΠ΄Π° Π² Go ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΠΊΠ» for, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹:

        for i := 1; i <= 10; i++ {
  println(i)
}

    

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» распСчатаСт значСния ΠΎΡ‚ 1 Π΄ΠΎ 10.

Если Π½ΡƒΠΆΠ΅Π½ Ρ†ΠΈΠΊΠ» Π±Π΅Π· счСтчика, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ части Ρ†ΠΈΠΊΠ»Π° for вмСстС с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ запятой:

        for number < secondNumber {
  number = number + 1
}

    

На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС. Пока условиС истинно, Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условиС станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ, ΠΎΠ½ прСрвСтся.

Для бСсконСчного Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ условиС:

        for {
  println("БСсконСчный Ρ†ΠΈΠΊΠ»")
}

    

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово break:

        i := 0
for {
  println("БСсконСчный Ρ†ΠΈΠΊΠ»")
  if i == 10 {
     break
  }
  i++
}

    

ΠŸΡ€ΠΈ достиТСнии конструкции break Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ слово continue. Оно отличаСтся ΠΎΡ‚ break Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ сразу Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ», Π° лишь пропускаСт ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΊΠΎΠ΄ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅.

ΠœΠ°ΡΡΠΈΠ²Ρ‹

Массив – это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° ячССк памяти, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ имя ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ – Π½Π°Π±ΠΎΡ€ упорядочСнных элСмСнтов.

ОбъявлСниС массива:

        var numbers [3]int
    

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам массива производится ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ массива ΠΈ индСксу элСмСнта. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ с нуля.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива значСниями:

        numbers[0] = 10
numbers[1] = 11
numbers[2] = 12

    

Если Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива извСстно ΠΏΡ€ΠΈ объявлСнии, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ объявлСния массива:

        var numbers [3]int = [3]int{10, 11, 12}
    

Для избСТания лишнСго ΠΊΠΎΠ΄Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ объявлСниСм:

        numbers := [3]int{10, 11, 12}
    

Π Π°Π·ΠΌΠ΅Ρ€ массива статичСн ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ слайсы.

Блайсы

Блайс являСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ массиву. ОбъявлСниС слайса отличаСтся ΠΎΡ‚ объявлСния массива Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отсутствиСм Ρ€Π°Π·ΠΌΠ΅Ρ€Π°:

        numbers := [3]int{10, 11, 12} // массив
numbers := []int{10, 11, 12} // слайс

    

Блайс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для добавлСния Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов Π² слайс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнная функция append:

        numbers = append(numbers, 13) // Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта
numbers = append(numbers, 14, 15) // Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… элСмСнтов

    

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Для ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½ΡƒΠΆΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Ѐункция – это Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ кусок ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠœΡ‹ ΡƒΠΆΠ΅ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ println для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° экран.

Ѐункция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main:

        func НазваниСЀункции(пСрвыйАргумСнт int, второйАргумСнт int) (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int) {
  // Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  return 0
}

    

ПослС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова func указываСтся Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π»Π΅Π΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ функция. ПослС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΡ€ΡƒΠ³Π»ΠΎΠΉ скобки указываСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ слСдуСт ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… скобках.

Ѐункция Sum складываСт Π΄Π²Π° числа ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

        func Sum(a, b int) int {
  return a + b
}

    

Ѐункция SumAndDivide Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊ сумму, Ρ‚Π°ΠΊ ΠΈ частноС чисСл:

        func SumAndDivide(a, b int) (int, int) {
  return a + b, a / b
}

    

ОбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступны Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main:

        func main() {
  sum := Sum(1, 2)
  println(sum) // 3
  sum, division := SumAndDivide(4, 2)
  println(sum)      // 6
  println(division) // 2
}

    

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹

ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ большой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ нСльзя. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠ΄ разбиваСтся Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ – Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .go ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° языка Go содСрТит ΠΌΠ½ΠΎΠ³ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². НапримСр, Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ strings содСрТатся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ использованиС ΠΏΠ°ΠΊΠ΅Ρ‚Π° strings:

        package main

import "strings"

func main() {
  upper := strings.ToUpper("Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹")
  println(upper) // Output: ЗАГЛАВНЫЕ Π‘Π£ΠšΠ’Π«
}

    

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово import Π½ΡƒΠΆΠ½ΠΎ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° strings, Π½ΡƒΠΆΠ½ΠΎ:

  • Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°;
  • ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ;
  • Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ сСрвСрноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€œHello Web”

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ http содСрТится всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для создания Π²Π΅Π±-сСрвСра.

        package main

import (
  "log"
  "net/http"
)

func HelloWeb(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte("Hello Web!"))
}

func main() {
  http.HandleFunc("/", HelloWeb)
  err := http.ListenAndServe("localhost:9999", nil)
  if err != nil {
     log.Println("listen and serve:", err)
  }
}

    

ЗапуститС ΠΊΠΎΠ΄. Π”Π°Π»Π΅Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу http://localhost:9999/. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС β€œHello Web!”

Ѐункция http.HandleFunc устанавливаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ HelloWeb, ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ /, Π° http.ListenAndServe запускаСт сСрвСр ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу.

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу, вызовСтся функция HelloWeb. Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° – сам запрос ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° запрос. Π’ строкС w.Write([]byte(β€œHello Web”)) ΠΌΡ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅ΠΌ Π½Π° запрос ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ строкой.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, Π²Ρ‹ написали ваш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π΅Π±-сСрвСр Π½Π° Go!

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

  • Β«Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ GoΒ» – Head First, Π”ΠΆΠ΅ΠΊ ΠœΠ°ΠΊΠ³Π°Π²Ρ€Π΅Π½.
  • Β«Π―Π·Ρ‹ΠΊ программирования GoΒ» – Алан А. А. Π”ΠΎΠ½ΠΎΠ²Π°Π½, Π‘Ρ€Π°ΠΉΠ°Π½ Π£. ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½.
  • Β«Go Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅Β» – Π‘Π°Ρ‚Ρ‡Π΅Ρ€ ΠœΡΡ‚Ρ‚, Π€Π°Ρ€ΠΈΠ½Π° ΠœΡΡ‚Ρ‚.

Онлайн рСсурсы

  • https://golang.org/ – ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт.
  • https://tour.golang.org/welcome/1 – Ρ‚ΡƒΡ€ ΠΏΠΎ языку Go.
  • https://go.dev/ – ΠΎΡ„Ρ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚Π°Π» ΠΎΠ± экосистСмС языка.

Go Π² β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°β€

***

ΠœΡ‹ ΠΏΡ€ΠΎΠ±Π΅ΠΆΠ°Π»ΠΈΡΡŒ ΠΏΠΎ основам Go: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ЦСнностями языка ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ
  • ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ
  • ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ
  • Π”Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½ΠΎΡΡ‚ΡŒ

Go соврСмСнный, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈ вострСбуСмый язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ прямо сСйчас.

***

Π₯ΠΎΡ‡Ρƒ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ слоТно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСпростая Ρ‚Π΅ΠΌΠ° для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния: Π½Π΅ Ρƒ ΠΊΠΎΠ³ΠΎ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ запустили курс «Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…Β», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Π±ΠΈΠ½Π°Ρ€ΠΎΠ² Π²Ρ‹:

  • ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ слСнг, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ говорят всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ нСзависимо ΠΎΡ‚ языка программирования: язык Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;
  • ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ ΠΊ тСхничСскому собСсСдованию ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠšΡƒΡ€Ρ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ junior, Ρ‚Π°ΠΊ ΠΈ middle-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

 
 

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Подпишись

Π½Π° push-увСдомлСния