관심있는 것들 정리

Golang 연습 4 (slice traversal) 본문

programming/Golang

Golang 연습 4 (slice traversal)

내공강화 2021. 1. 25. 11:42

slice는 array와 달리 크기가 고정되어 있지 않음

array는 var a [5]int와 같이 인자로 크기를 주지만, slice는 var a []int 와 같이 인자로 크기를 주지 않음

기본적으로 reference type으로 저장 공간을 할당하려면(초기화시 값으로 자동할 당하는 경우 외), make([]자료형, 길이, 용량)으로 할당 필요(용량명시하지 않으면 길이와 용량이 동일하게 할당)

  길이: index로 접근 가능한 길이. 길이<=용량,  용량이 길이값보다 훨씬 커도, 길이값보다 큰 index 사용하면 에러 발생

  용량: 실제 메모리에 잡히는 공간

 

package main

import (
	"fmt"
)

func main() {
	var a = []int{1, 2, 3, 4, 5}

	fmt.Printf("길이:%v  용량: %v\n", len(a), cap(a))

	for i := 0; i < len(a); i++ {
		fmt.Println(i)
	}

	for i, val := range a {
		fmt.Println(i, val)
	}

	for _, val := range a {
		fmt.Println(val)
	}
}
반응형