@ajlhimik

Как создать срез из массива не передавая его по ссылке?

arr := [5]float64{1,2,3,4,5}
x := arr[0:5]

при изменений arr[2] = 10 x[2] тожэ будет равен 10 и наооборот, а как без цыкла создать новый срез ни к чему не привязаный из массива как тут x := arr[0:5]
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
package main

import (
	"fmt"
)

func main() {
	arr := [5]float64{1, 2, 3, 4, 5}
	i := 3
	x := append([]float64{}, arr[:i]...)
	x[2] = 42
	fmt.Println(x)
	fmt.Println(arr)
}

https://play.golang.org/p/L5jQgS1_M0j

Советую почитать, много интересного по слайсам есть https://github.com/golang/go/wiki/SliceTricks
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
arr := [5]float64{1,2,3,4,5}
var newslice = make([]float64, 5)
copy(newslice, arr[0:5])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы