@ajlhimik

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

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

при изменений arr[2] = 10 x[2] тожэ будет равен 10 и наооборот, а как без цыкла создать новый срез ни к чему не привязаный из массива как тут x := arr[0:5]
  • Вопрос задан
  • 93 просмотра
Решения вопроса 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
habrahabr.ru/users/uvelichitel
arr := [5]float64{1,2,3,4,5}
var newslice = make([]float64, 5)
copy(newslice, arr[0:5])
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Spectrum Екатеринбург
от 100 000 до 160 000 ₽
CarPrice Москва
от 120 000 ₽
02 апр. 2020, в 18:18
800 руб./за проект
02 апр. 2020, в 16:57
5000 руб./за проект
02 апр. 2020, в 16:49
15000 руб./за проект