코딩/GoLang

GoLang 배열 및 배열의 값 복사, 참조 복사

드리프트 2021. 2. 3. 21:49
728x170

 

 

안녕하세요?

 

오늘은 GoLang에서 배열(Array)에 대해 예제를 통해 알아 보겠습니다.

 

 

1. golang(고랭) 배열(Array) 사용 방법

 

package main
import "fmt"

func main(){
	var x[5] int	// Array 선업

	x[0]=10			// 특정 index에 값 지정
	x[4]=20			// 순서에 상관없이 특정 index에 값 지정가능	
	x[1]=30
	x[3]=40
	x[2]=50	
	fmt.Println("Values of Array X: ",x)

	// 배열 선언 및 초기화(특정위치에 초기화 가능)
	y := [5]int{0:100,1:200,3:500}
	fmt.Println("Values of Array Y: ",y)


	// 배열 선언 및 초기화
	Country := [5]string{"US","UK","Australia","Russia","Brazil"}
	fmt.Println("Values of Array Country: ",Country)

	// 길이 없이 배열 선언하기 및 초기화
	Transport := [...]string{"Train","Bus","Plane","Car","Bike"}
	fmt.Println("Values of Array Transport: ",Transport)

}

 

실행 결과는 아래와 같습니다.

 

 

 

 

 

2. 배열복사 : 값 복사, 참조 복사

 

값 또는 참조로 새 변수에 배열을 할당하여 배열의 복사본을 만들 수 있습니다.

 

package main

import "fmt"

func main() {

	strArray1 := [3]string{"Korea", "Australia", "Germany"}
	strArray2 := strArray1  // 값 복사
	strArray3 := &strArray1 // 참조 복사

	fmt.Printf("strArray1: %v\n", strArray1)
        fmt.Printf("strArray2: %v\n", strArray2)	

        strArray1[0] = "Canada"
  
	fmt.Printf("strArray1: %v\n", strArray1)
	fmt.Printf("strArray2: %v\n", strArray2)	
	fmt.Printf("*strArray3: %v\n", *strArray3)	
}

 

실행 결과는 아래와 같습니다.

strArray1: [Korea Australia Germany]
strArray2: [Korea Australia Germany]
strArray1: [Canada Australia Germany]
strArray2: [Korea Australia Germany]
*strArray3: [Canada Australia Germany]

 

그리드형