한 슬라이스에서 다른 슬라이스로 요소를 이동하는 방법

WBOY
풀어 주다: 2024-02-10 17:40:08
앞으로
1049명이 탐색했습니다.

한 슬라이스에서 다른 슬라이스로 요소를 이동하는 방법

php 편집기 Apple에서는 한 슬라이스에서 다른 슬라이스로 요소를 이동하는 방법을 소개합니다. 프로그래밍에서 슬라이스는 여러 요소를 저장할 수 있는 일반적으로 사용되는 데이터 구조입니다. 때로는 한 슬라이스에서 요소를 가져와서 다른 슬라이스로 이동해야 하는 경우도 있습니다. 이 프로세스에는 요소 삭제, 삽입, 색인 작업 등이 포함될 수 있습니다. 다음으로, 모든 사람이 슬라이싱 관련 지식을 더 잘 이해하고 적용할 수 있도록 이 작업을 구현하는 방법을 자세히 논의하겠습니다.

질문 내용

package main

import (
    "fmt"
)

func main() {
    arr0 := []int{
        1,2,3,4,5,
    }
    arr1 := []int{}

    fmt.println(arr0)
    fmt.println(arr1)
    fmt.println("transferring...")
    transfer(&arr0, &arr1)
    fmt.println(arr0)
    fmt.println(arr1)
}

func transfer(arr0 *[]int, arr1 *[]int) {
    tmp := make([]int, 0)
    for i:=0;i<len(*arr0);i++ {
        tmp = append(tmp, (*arr0)[i])
    }

    arr1 = &tmp
    s := make([]int, 0)
    arr0 = &s
}
로그인 후 복사

전송 함수의 경우 슬라이스 arr0의 요소를 슬라이스 arr1과 빈 슬라이스 arr0으로 전송할 계획입니다

하지만 효과가 없었어요

이것이 내 결과물입니다

으아아아

이전 후 다음 결과가 필요합니다. [] [1 2 3 4 5] 그러나 실제로 주 함수의 arr0과 arr1은 동일하게 유지됩니다!

왜 이것이 작동하지 않는지 말해 줄 수 있나요?

내 기억엔 이랬을 것 같아

전송 기능을 실행한 후

해결 방법

다음 두 줄:

으아아아

함수 내 지역 변수arr1arr0 。这些变量恰好是指针,但它们只是 main를 제공된 입력 포인터의 복사본으로 변경합니다. 이는 입력 포인터에 대한 참조가 아닙니다.

변경하면 arr1arr0 指针指向的内容,而不是指针本身,那么您将看到 main 제공된 값이 변경됩니다.

으아아아

위 내용은 한 슬라이스에서 다른 슬라이스로 요소를 이동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!