이동에 배열 배열을 만들려면 어떻게해야합니까?다차원 배열 만들기
2
A
답변
7
건물 엄격
a := [][]byte{{1, 2}, {3, 4}}
말하기 @Kevin 버크의 대답에 슬라이스 slice입니다. 어레이의 array과 내부적으로 상당히 다른 것입니다. 슬라이스의 슬라이스가 더 복잡 반면 그것은 매우 효율적 있도록
fmt.Println("Array of Arrays")
a := [2][2]int{{0, 1}, {2, 3}}
for i := 0; i < 2; i++ {
for j := 0; j < 2; j++ {
fmt.Printf("a[%d][%d] = %d at %p\n", i, j, a[i][j], &a[i][j])
}
}
fmt.Println("Slice of Slices")
b := [][]int{{0, 1}, {2, 3}}
for i := 0; i < 2; i++ {
for j := 0; j < 2; j++ {
fmt.Printf("b[%d][%d] = %d at %p\n", i, j, b[i][j], &b[i][j])
}
}
내부적 배열의 배열 메모리 바로 인접한 비트이다. 각 하위 슬라이스는 다른 크기 일 수 있으며 다른 위치에 할당됩니다. 슬라이스 헤더는 여분의 RAM을 사용하고 엑세스하기 위해 여분의 삽입을 사용합니다.
예를 들어 creating 100,000 3x3 array of arrays은 5.03MB의 RAM을 사용하지만 creating 100,000 3x3 slices of slices은 13.79MB의 RAM을 사용합니다.
슬라이스 조각은 훨씬 더 융통성이 있습니다. 각 행마다 크기가 다를 수 있지만 2x2 행렬을 원한다면 배열 배열을 선택하는 것이 훨씬 더 좋습니다.
또 다른 차이점은 슬라이스가 참조 유형이라는 것입니다. 슬라이스를 함수에 전달하면 함수의 원래 슬라이스가 변경됩니다. 배열은 그렇지 않습니다 - 하나를 함수에 전달하면 속도가 느려지거나 원하는 것을 복사 할 수 있습니다. 그것을 수정하려면 포인터를 전달하십시오. 한 차원 것들에 대한 일반적
Array of arrays
Before [[0 1] [2 3]]
I'm a function modifying an array of arrays argument
After [[0 1] [2 3]]
Slice of slices
Before [[0 1] [2 3]]
I'm a function modifying an slice of slices argument
After [[100 1] [2 3]]
를 인쇄
func f1(a [2][2]int) {
fmt.Println("I'm a function modifying an array of arrays argument")
a[0][0] = 100
}
func f2(b [][]int) {
fmt.Println("I'm a function modifying an slice of slices argument")
b[0][0] = 100
}
func main() {
fmt.Println("Array of arrays")
a := [2][2]int{{0, 1}, {2, 3}}
fmt.Printf("Before %v\n", a)
f1(a)
fmt.Printf("After %v\n\n", a)
fmt.Println("Slice of slices")
b := [][]int{{0, 1}, {2, 3}}
fmt.Printf("Before %v\n", b)
f2(b)
fmt.Printf("After %v\n", b)
}
이 조각은 거의 항상 배열보다 낫다. 그러나 고정 된 크기의 다차원 배열의 경우 배열 배열이 더 나은 선택입니다.
6
를 사용하여 중첩 된 괄호 :
이a := [][]byte{{1, 2}, {3, 4}}
관련 문제
- 1. DB에서 다차원 배열 만들기
- 2. PHP 다차원 배열 만들기
- 3. 특정 다차원 배열 만들기
- 4. PHP에서 다차원 배열 만들기
- 5. C# 다차원 배열 만들기
- 6. 모양에서 다차원 배열 만들기
- 7. cakephp에 다차원 배열 만들기
- 8. csv에서 다차원 배열 만들기
- 9. 쿼리에서 다차원 배열 만들기
- 10. 연관 다차원 배열 만들기
- 11. 배열에서 다차원 배열 만들기
- 12. 다차원 배열 만들기
- 13. 다차원 가변 배열 만들기
- 14. 배열에서 다차원 배열 만들기
- 15. 배열에서 다차원 배열 만들기
- 16. 다차원 배열 만들기 (JS)
- 17. jQuery 다차원 배열 만들기
- 18. 다차원 배열 만들기
- 19. 두 배열로 다차원 배열 만들기
- 20. jquery push 다차원 배열 만들기
- 21. 사용자 지정 다차원 배열 만들기
- 22. 데이터베이스 결과에서 다차원 배열 만들기
- 23. 다차원 배열 만들기 (n 차원)
- 24. 임의의 정수로 다차원 배열 만들기
- 25. VBScript에서 다차원, 연관 배열 만들기
- 26. 자바 스크립트에서 다차원 배열 만들기
- 27. 테이블 텍스트에서 다차원 배열 만들기
- 28. ANTLR 문법에서 다차원 배열 만들기
- 29. jq를 사용하여 다차원 배열 만들기
- 30. 루프를 통해 다차원 배열 만들기!