Go Масиви
Go Масиви
Масиви використовуються для зберігання кількох значень одного типу в одній змінній замість оголошення окремих змінних для кожного значення.
Оголошення масиву
У Go є два способи оголосити масив:
1. За допомогою ключового слова var
:
Синтаксис
var array_name = [length]datatype{values} // тут визначається довжина
або
var array_name = [...]datatype{values} // тут випливає довжина
2. За допомогою знаку :=
:
Синтаксис
array_name := [length]datatype{values} // тут визначається довжина
або
array_name := [...]datatype{values} // тут випливає довжина
Примітка: Довжина вказує кількість елементів для збереження в масиві. У Go масиви мають фіксовану довжину. Довжина масиву або визначається числом, або виводиться (означає, що компілятор визначає довжину масиву на основі кількості значень).
Приклади масиву
Приклад
У цьому прикладі оголошено два масиви (arr1 і arr2) із визначеною довжиною:
package main
import ("fmt")
func main() {
var arr1 = [3]int{1,2,3}
arr2 := [5]int{4,5,6,7,8}
fmt.Println(arr1)
fmt.Println(arr2)
}
Результат:
[1 2 3]
[4 5 6 7 8]
Приклад
У цьому прикладі оголошено два масиви (arr1 і arr2) із визначеною довжиною:
package main
import ("fmt")
func main() {
var arr1 = [...]int{1,2,3}
arr2 := [...]int{4,5,6,7,8}
fmt.Println(arr1)
fmt.Println(arr2)
}
Результат:
[1 2 3]
[4 5 6 7 8]
Приклад
У цьому прикладі оголошено масив рядків:
package main
import ("fmt")
func main() {
var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}
fmt.Print(cars)
}
Результат:
[Volvo BMW Ford Mazda]
Доступ до елементів масиву
Ви можете отримати доступ до певного елемента масиву, посилаючись на номер індексу.
У Go індекси масиву починаються з 0. Це означає, що [0] є першим елементом, [1] є другим елементом тощо.
Приклад
У цьому прикладі показано, як отримати доступ до першого та третього елементів у масиві цін:
package main
import ("fmt")
func main() {
prices := [3]int{10,20,30}
fmt.Println(prices[0])
fmt.Println(prices[2])
}
Результат:
10
30
Зміна елементів масиву
Ви також можете змінити значення певного елемента масиву, посилаючись на номер індексу.
Приклад
У цьому прикладі показано, як змінити значення третього елемента в масиві цін:
package main
import ("fmt")
func main() {
prices := [3]int{10,20,30}
prices[2] = 50
fmt.Println(prices)
}
Результат:
[10 20 50]
Ініціалізація масиву
Якщо масив або один із його елементів не було ініціалізовано в коді, йому присвоюється значення за умовчанням для його типу.
Підказка. Типовим значенням int є 0, а значенням string є "".
Приклад
package main
import ("fmt")
func main() {
arr1 := [5]int{} //не ініціалізовано
arr2 := [5]int{1,2} //частково ініціалізовано
arr3 := [5]int{1,2,3,4,5} //повністю ініціалізовано
fmt.Println(arr1)
fmt.Println(arr2)
fmt.Println(arr3)
}
Результат:
[0 0 0 0 0]
[1 2 0 0 0]
[1 2 3 4 5]
Ініціалізувати лише певні елементи
У масиві можна ініціалізувати лише певні елементи.
Приклад
У цьому прикладі ініціалізуються лише другий і третій елементи масиву:
package main
import ("fmt")
func main() {
arr1 := [5]int{1:10,2:40}
fmt.Println(arr1)
}
Результат:
[0 10 40 0 0]
Пояснення прикладу
Наведений вище масив складається з 5 елементів.
1:10
означає: призначити10
індексу масиву1
(другий елемент).2:40
означає: призначити40
індексу масиву2
(третій елемент).
Знайти довжину масиву
Функція len()
використовується для визначення довжини масиву:
Приклад
package main
import ("fmt")
func main() {
arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}
arr2 := [...]int{1,2,3,4,5,6}
fmt.Println(len(arr1))
fmt.Println(len(arr2))
}
Результат:
4
6