> 백엔드 개발 > Golang > Go 배열을 슬라이스로 어떻게 변환합니까?

Go 배열을 슬라이스로 어떻게 변환합니까?

DDD
풀어 주다: 2024-12-17 22:26:11
원래의
543명이 탐색했습니다.

How Do I Convert a Go Array to a Slice?

Go에서 배열을 슬라이스로 변환

Go에서 배열과 슬라이스로 작업할 때 배열을 변환해야 하는 경우가 있을 수 있습니다. 추가 처리를 위해 슬라이스로 이동합니다. 예를 들어 배열을 반환하는 함수가 있지만 다른 함수에는 입력 매개 변수로 슬라이스가 필요한 경우가 있습니다.

이러한 요구를 해결하려면 슬라이스 표현식 array[:를 사용하여 배열을 슬라이스로 변환할 수 있습니다. ]. 이 표현식은 데이터 복사본을 생성하지 않고 기본 배열을 가리키는 슬라이스 헤더를 효과적으로 생성합니다.

이를 달성하는 방법을 보여주는 예는 다음과 같습니다.

func Foo() [32]byte {
    return [32]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
}

func Bar(b []byte) {
    fmt.Println(string(b))
}

func main() {
    x := Foo()
    Bar(x[:])
}
로그인 후 복사

이 예에서는 Foo 함수는 '0'부터 'f'까지의 숫자를 나타내는 32바이트 배열을 반환합니다. Bar 함수는 바이트 조각을 받아 해당 문자열 표현을 인쇄합니다.

Bar(x[:])를 호출하면 데이터를 복사하지 않고 기본 배열 x를 참조하는 조각 헤더가 생성됩니다. [:] 표현식은 본질적으로 배열의 시작 부분에서 시작하고 마지막 요소에서 끝나는 조각을 생성합니다.

이 변환은 기본 데이터의 복사본을 생성하지 않고 대신 생성한다는 점에 유의하는 것이 중요합니다. 동일한 데이터에 대한 다른 보기나 참조를 제공합니다. 이는 불필요한 복사본을 생성하지 않고 함수 간에 데이터를 전달해야 할 때 특히 유용할 수 있습니다.

위 내용은 Go 배열을 슬라이스로 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿