Skip to content

Commit

Permalink
new array descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
arturpanteleev committed Nov 18, 2023
1 parent 9ad5029 commit 6e32cdb
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/goLang/types/array_slice.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

## Массив

По определению тип массива состоит из длины и типа его элементов. Например, тип `[4]int` представляет массив из четырёх целых чисел. Размер массива неизменяем; его *длина - это часть его типа* (`[4]int` и `[5]int` различные, несовместимые типы). Массивы могут быть проиндексированы, поэтому с помощью выражения `s[n]` мы получаем доступ к n-ному элементу, начиная с нуля. Массивы не нужно инициализировать явно; нулевой массив - это готовый к использованию массив, элементы которого являются нулями:
Массив - это набор элемнтов одного типа, имеющий фиксированный размер. Занимает непрерывный участок в памяти. Определяется длиной и типом его элементов.

Например, тип `[4]int` представляет массив из четырёх целых чисел. Размер массива неизменяем; его *длина - это часть его типа* (`[4]int` и `[5]int` различные, несовместимые типы). Массивы могут быть проиндексированы, поэтому с помощью выражения `s[n]` мы получаем доступ к n-ному элементу, начиная с нуля. Массивы не нужно инициализировать явно; нулевой массив - это готовый к использованию массив, элементы которого являются нулями:

```go
var a [4]int
Expand All @@ -27,17 +29,17 @@ b := [2]string{"Penn", "Teller"}

## Слайсы

Слайс - это дескриптор сегмента массива. Он состоит из указателя на массив, длины сегмента и его вместимости (максимальной длины сегмента).
Слайс - это дескриптор сегмента массива. Он состоит из указателя на массив(а точнее на первый элемент базового массива), length и capacity - максимальной длины c - до которой может быть расширен слайс(по сути длина от первого элемента слайса, до конца базового массива)

```go
type slice struct {
array unsafe.Pointer
len int
cap int
array unsafe.Pointer //первый элемент слайса в массиве
len int //длина
cap int //вместимость
}
```

Наша переменная `s`, созданная ранее с помощью `make([]byte, 5)`, имеет такую структуру:
Переменная `s`, созданная с помощью `make([]byte, 5)`, имеет такую структуру:



Expand Down

0 comments on commit 6e32cdb

Please sign in to comment.