ПослС изучСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур ΠΏΠΎΡ€Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с функциями β€” ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ элСмСнтом любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Go. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±Π»ΠΎΠΊΠΈ, дСлая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ.

πŸ’¬ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция?
Ѐункция β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. НапримСр, Ρ‚Ρ‹ моТСшь ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для вычислСния суммы Π΄Π²ΡƒΡ… чисСл ΠΈΠ»ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° привСтствия.


πŸ”§ ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Go ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова func. Π’ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис:

package main

import "fmt"

func имяЀункции(ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉΠ’ΠΈΠΏ {
    // ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

package main

import "fmt"

func sayHello() {
    fmt.Println("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Go!")
}

func main() {
    sayHello() // Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
}

πŸ’‘ Ѐункция main β€” это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Она вызываСтся автоматичСски ΠΏΡ€ΠΈ запускС.


πŸ“₯ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ β€” Π΄Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² скобках с ΠΈΡ… Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

package main

import "fmt"

func add(a int, b int) {
    fmt.Println("Π‘ΡƒΠΌΠΌΠ°:", a+b)
}

func main() {
    add(3, 5) // Π‘ΡƒΠΌΠΌΠ°: 8
}

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для послСднСго:

func add(a, b int) {
    fmt.Println("Π‘ΡƒΠΌΠΌΠ°:", a+b)
}

πŸ“€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова return. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния указываСтся послС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

package main

import "fmt"

func multiply(x, y int) int {
    return x * y
}

func main() {
    result := multiply(4, 5)
    fmt.Println("Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:", result) // Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 20
}

πŸ”„ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚

Go позволяСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

package main

import "fmt"

func divide(a, b int) (int, bool) {
    if b == 0 {
        return 0, false // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ 0 ΠΈ false, Ссли Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
    }
    return a / b, true
}

func main() {
    result, success := divide(10, 2)
    if success {
        fmt.Println("Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния:", result) // Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния: 5
    } else {
        fmt.Println("Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль!")
    }
}

⚠️ ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для всСх Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ _ для игнорирования Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ….


πŸ“‹ Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ яснСС. Они автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нулями для своСго Ρ‚ΠΈΠΏΠ°.

package main

import "fmt"

func subtract(a, b int) (result int) {
    result = a - b
    return // АвтоматичСски Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ result
}

func main() {
    fmt.Println(subtract(7, 3)) // 4
}

πŸ›  ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚:

  • Π£ΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄: Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° малСнькиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄: НапримСр, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sayHello ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ.
  • Π£Π»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ€ΠΎΠ΄Π΅ add ΠΈΠ»ΠΈ divide говорят сами Π·Π° сСбя.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

package main

import "fmt"

func greet(name string) string {
    return "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, " + name + "!"
}

func sumAndDiff(a, b int) (sum, diff int) {
    sum = a + b
    diff = a - b
    return
}

func main() {
    fmt.Println(greet("Алиса")) // ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Алиса!
    
    s, d := sumAndDiff(10, 4)
    fmt.Println("Π‘ΡƒΠΌΠΌΠ°:", s) // Π‘ΡƒΠΌΠΌΠ°: 14
    fmt.Println("Π Π°Π·Π½ΠΎΡΡ‚ΡŒ:", d) // Π Π°Π·Π½ΠΎΡΡ‚ΡŒ: 6
}

πŸ“š ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты

  • ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ понятныС ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ дСйствиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, calculateArea, Π° Π½Π΅ ca).
  • ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ нСбольшими ΠΈ выполняли ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ.
  • Ошибки: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ мноТСствСнный Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с divide.
  • ДокумСнтация: ДобавляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

🧠 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это ΠΊΠ°ΠΊ инструмСнты Π² ящикС: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ подобранная функция Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ эффСктивнСС.


πŸ§ͺ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

package main

import "fmt"

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

func isEven(num int) (result bool) {
    result = num%2 == 0
    return
}

func main() {
    x, y := 15, 8
    fmt.Println("ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ:", max(x, y)) // ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ: 15
    
    if isEven(x) {
        fmt.Println(x, "β€” Ρ‡Ρ‘Ρ‚Π½ΠΎΠ΅")
    } else {
        fmt.Println(x, "β€” Π½Π΅Ρ‡Ρ‘Ρ‚Π½ΠΎΠ΅") // 15 β€” Π½Π΅Ρ‡Ρ‘Ρ‚Π½ΠΎΠ΅
    }
    
    result, ok := divide(10, 0)
    if ok {
        fmt.Println("Π”Π΅Π»Π΅Π½ΠΈΠ΅:", result)
    } else {
        fmt.Println("Ошибка: дСлСниС на ноль")
    }
}

func divide(a, b int) (int, bool) {
    if b == 0 {
        return 0, false
    }
    return a / b, true
}

πŸ” Вопросы для самопровСрки

  1. Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Go?
  2. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return?
  3. Как Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?
  4. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния?
  5. Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ greet с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ "Π‘ΠΎΠ±"?
  6. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…?

πŸ“Œ Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΈΠ· Π³Π»Π°Π²Ρ‹

  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Go ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ func ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния.
  • Go ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнный Π²ΠΎΠ·Π²Ρ€Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.
  • Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΊΠΎΠ΄.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ понятныС ΠΈΠΌΠ΅Π½Π° ΠΈ Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ читаСмости.

πŸ›  Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ square, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число n ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Ρ‘ Π² main ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ для n = 6.