Skip to content

looptrix/project1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Отчёт по структурам данных в Go

Содержание


Массивы

Что такое массив

Массив — это коллекция фиксированной длины, где все элементы имеют один тип.
Индексация начинается с 0.

var nums [3]int
fmt.Println(nums) // [0 0 0]

Синтаксис и создание массива

Объявление пустого массива

var nums [3]int
fmt.Println(nums) // [0 0 0]

Инициализация массива при создании

nums := [5]int{10, 20, 30, 40, 50}
fmt.Println(nums) // [10 20 30 40 50]

Доступ к элементам массива

fmt.Println(nums[0])            // первый элемент → 10
fmt.Println(nums[2])            // третий элемент → 30
fmt.Println(nums[len(nums)-1])  // последний элемент → 50

Перебор массива

Через for

for i := 0; i < len(nums); i++ {
    fmt.Println("Индекс:", i, "Значение:", nums[i])
}

Через range

for i, v := range nums {
    fmt.Println(i, "=>", v)
}

Сумма элементов массива

sum := 0
for _, v := range nums {
    sum += v
}
fmt.Println("Сумма элементов:", sum)

Минимум и максимум

numbers := [6]int{45, 12, 78, 90, 4, 56}
min := numbers[0]
max := numbers[0]


for _, v := range numbers {
    if v < min {
        min = v
    }
    if v > max {
        max = v
    }
}

fmt.Println("Массив numbers:", numbers)
fmt.Println("Минимум:", min)
fmt.Println("Максимум:", max)

Слайсы (Slices)

Что такое слайс

Слайс — это динамический массив, который может изменять длину. Слайсы содержат: • указатель на массив • длину (len) • вместимость (cap)

Создание и инициализация

Литерал слайса

s := []int{1, 2, 3}
fmt.Println(s) // [1 2 3]

Через make
s2 := make([]int, 5) // длина 5, заполнен нулями
fmt.Println(s2)      // [0 0 0 0 0]

## Доступ к элементам
fmt.Println(s[0])        // первый элемент → 1
fmt.Println(s[len(s)-1]) // последний элемент → 3

## Перебор слайса
for i, v := range s {
    fmt.Println(i, "=>", v)
}
## Добавление элементов
s = append(s, 4, 5)
fmt.Println(s) // [1 2 3 4 5]

## Срезы срезов

sub := s[1:4] // элементы с индексами 1,2,3
fmt.Println(sub) // [2 3 4]

# Функции
Простейшие функции
func sum(a int, b int) int {
    return a + b
}

func min(a int, b int) int {
    if a < b {
        return a
    }
    return b
}

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

func greet(name string) string {
    return "Привет, " + name + "!"
}
## Вызов функций

fmt.Println("Сумма 5 + 7 =", sum(5,7))
fmt.Println("Минимум из 10 и 3 =", min(10,3))
fmt.Println("Максимум из 10 и 3 =", max(10,3))
fmt.Println(greet("Anna"))

# Структуры (Structs)

Объявление структуры
type Person struct {
    Name string
    Age  int
}
# Срез из структур
people := []Person{
    {Name: "Alice", Age: 25},
    {Name: "Bob", Age: 30},
    {Name: "Charlie", Age: 22},
}
# Перебор среза структур
for _, p := range people {
    fmt.Println("Имя:", p.Name, "Возраст:", p.Age)
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages