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은 동일하게 유지됩니다!
왜 이것이 작동하지 않는지 말해 줄 수 있나요?
내 기억엔 이랬을 것 같아
전송 기능을 실행한 후
다음 두 줄:
으아아아함수 내 지역 변수arr1
和 arr0
。这些变量恰好是指针,但它们只是 main
를 제공된 입력 포인터의 복사본으로 변경합니다. 이는 입력 포인터에 대한 참조가 아닙니다.
변경하면 arr1
和 arr0
指针指向的内容,而不是指针本身,那么您将看到 main
제공된 값이 변경됩니다.
위 내용은 한 슬라이스에서 다른 슬라이스로 요소를 이동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!