Литерал среза такой же как и для массива, но без размера.
Вот пример создания массива:
[3]bool{true, true, false}
В следующем примере будет создан такой же массив, как и выше, а затем построен срез, ссылающийся на него:
[]bool{true, true, false}
Примеры литералов срезов:
package main
import "fmt"
func main() {
q := []int{2, 3, 5, 7, 11, 13}
fmt.Println(q)
r := []bool{true, false, true, true, false, true}
fmt.Println(r)
s := []struct {
i int
b bool
}{
{2, true},
{3, false},
{5, true},
{7, true},
{11, false},
{13, true},
}
fmt.Println(s)
}
Вывод:
[2 3 5 7 11 13]
[true false true true false true]
[{2 true} {3 false} {5 true} {7 true} {11 false} {13 true}]
Значения по умолчанию в срезах
Когда вы хотите создать срез, то можете опустить верхнюю или нижнюю границы, чтобы использовать значения по умолчанию.
Значением по умолчанию для нижней границы является нуль, а для верхней - размер среза.
Для массива
var a [10]int
следующие выражения создания среза эквивалентны:
a[0:10]
a[:10]
a[0:]
a[:]
Пример:
package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11, 13}
s = s[1:4]
fmt.Println(s)
s = s[:2]
fmt.Println(s)
s = s[1:]
fmt.Println(s)
}
Вывод:
[3 5 7]
[3 5]
[5]
Читайте также:
- Основы языка Go: размер и вместимость среза
- Основы языка Go: срезы (slices)
- Основы языка Go: массивы (arrays)
Комментариев нет:
Отправить комментарий