Go 할당에서 배열 압축 해제
Go는 Python과 같이 배열을 여러 변수로 직접 압축 해제하는 것을 지원하지 않지만, 유사한 목표를 달성하기 위한 전략이 있습니다.
임시 압축 풀기 기능
한 가지 접근 방식은 사용자 정의 함수를 정의하는 것입니다.
func splitLink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1] }
그런 다음 다음을 사용하여 배열의 압축을 풀 수 있습니다. 이 함수는 다음과 같습니다.
name, link := splitLink("foo\thttps://bar", "\t")
가변 포인터 인수
가변 포인터 인수를 사용하는 또 다른 방법은 다음과 같습니다.
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str } }
이를 사용하면 다음과 같이 작성할 수 있습니다.
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
그러나 이 경우 변수를 명시적으로 선언해야 하며 가독성이 떨어집니다.
더 많은 값 처리
값의 개수가 unpacked가 알려진 경우 일련의 할당 문을 사용할 수 있습니다:
var name, link, description string x := strings.Split("foo\thttps://bar\tDescription", "\t") name = x[0] link = x[1] description = x[2]
또는 루프를 사용하여 배열을 반복하고 변수에 값을 할당할 수 있습니다.
var name, link, description string for i := 0; i < len(x); i++ { switch i { case 0: name = x[i] case 1: link = x[i] case 2: description = x[i] } }
위 내용은 Go 과제에서 배열의 압축을 푸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!