golang에서 배열과 슬라이스의 차이점:
● 슬라이스는 포인터 유형이고 배열은 값입니다. 유형
● 배열의 길이는 고정되어 있지만 슬라이스는 고정되어 있지 않습니다(슬라이스는 동적 배열입니다)
● 슬라이스에는 배열보다 하나 이상의 속성이 있습니다: 용량(캡)#🎜 🎜#
● 슬라이스의 맨 아래 레이어는 배열입니다 관련 권장 사항: 하나는 포인터이므로 유형이고 다른 하나는 값 유형입니다. 차이점은 무엇입니까? 이 예를 보세요numbers := []int{1, 2, 3, 4, 5, 6} for i, e := range numbers { if i == len(numbers)-1 { numbers[0] += e } else { numbers[i+1] += e } } fmt.Println(numbers)결과는 다음과 같습니다:
[22 3 6 10 15 21]슬라이스를 배열로 교체:
numbers := [...]int{1, 2, 3, 4, 5, 6} for i, e := range numbers { if i == len(numbers)-1 { numbers[0] += e } else { numbers[i+1] += e } } fmt.Println(numbers)결과는 다음과 같습니다.
[7 3 5 7 9 11]분명히: 순회 후 배열의 각 요소는 현재 요소와 이전 요소의 합계가 됩니다. 슬라이싱에서도 마찬가지입니다. 단, 각 요소는 이전 요소가 됩니다. . 요소와 현재 요소의 변경된 값의 합계입니다. 분석: for 루프 동안 숫자의 요소는 {1,2,3,4,5,6}입니다. for 루프를 수신하는 변수는 i와 e이고, i는 둘 다 [0,1,2,3,4,5]입니다. 하지만 e는 다르며 배열은 값으로 전달되므로 배열을 순회할 때 e는 {1,2,3,4,5,6} 포인터를 전달하므로 누적될 때마다 변경된 값은 다음과 같습니다. 축적.
위 내용은 golang 배열과 슬라이스의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!