언어 자료구조 알고리즘/구글 Go

[구글 Go 하자] 37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요.

언제나휴일 2016. 12. 17. 05:34
반응형

37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요.


 

 안녕하세요. 언제나 휴일, 언휴예요.

 

 이번에는 원본 슬라이스에서 원하는 영역을 추출하는 부분 슬라이스를 만드는 방법을 알아보아요. 부분 슬라이스를 만들 때는 슬라이스명[시작 인덱스: 끝 인덱스 더하기 일] 표현을 사용하세요.

슬라이스명[시작 인덱스: 끝 인덱스 더하기 일]

 

 주의할 점은 실제 만들어지는 부분 슬라이스 영역은 시작 인덱스에서 끝 인덱스 이전까지만 복사합니다. 다음은 원본 슬라이스에서 원하는 영역을 최종 사용자로부터 입력받아 부분 슬라이스를 만드는 예제 코드예요.

//부분 슬라이스 만들기

package main

 

import "fmt"

 

func main() {

    var origin_s []int = []int{10, 23, 34, 47, 54, 62, 7, 89, 91, 102}

    var start int

    var last int

 

    fmt.Print("원본 슬라이스:")

    fmt.Println(origin_s)

 

    fmt.Println("원본 슬라이스에서 부분 슬라이스 만들기")

    fmt.Print("시작 인덱스:")

    fmt.Scanln(&start)

    fmt.Print(" 인덱스:")

    fmt.Scanln(&last)

 

    var sub_s []int = origin_s[start : last+1]

    fmt.Print("부분 슬라이스:")

    fmt.Println(sub_s)

 

}

 

 실행 결과는 다음과 같아요.

원본 슬라이스:[10 23 34 47 54 62 7 89 91 102]

원본 슬라이스에서 부분 슬라이스 만들기

시작 인덱스:3

끝 인덱스:5

부분 슬라이스:[47 54 62]

 


관련 게시글

[구글 Go 하자] 31. 동적 배열, 슬라이스 기초

[구글 Go 하자] 32. 슬라이스에 append 함수로 순차 보관

[구글 Go 하자] 33. 슬라이스가 꽉 찰 때 append 함수를 사용하면 알아서 늘려줘요.

[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요.

[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조

[구글 Go 하자] 36. copy 함수를 사용하면 원소 값을 복사할 수 있어요.

반응형