여러 맵에서 효율적인 키 존재 확인
Go에서는 키 검색을 위한 효율적인 데이터 구조인 맵을 사용하여 작업하는 것이 일반적입니다. -값 쌍. 그러나 개발자가 제공한 코드는 두 개의 개별 맵에 키가 있는지 확인해야 함을 보여줍니다. 이 프로세스를 더 간결하게 만들 수 있는지 여부는 여전히 의문입니다.
답변에서 설명했듯이 Go에서 키 존재 여부를 확인하기 위해 특수 v, ok := m[k] 형식을 사용하는 것은 단일 변수 할당으로 제한됩니다. . 따라서 이 양식을 사용하여 조건을 하나로 결합하는 것은 불가능합니다.
그러나 원하는 기능을 달성하기 위한 대체 접근 방식이 있습니다.
튜플 할당:
맵의 값 유형이 인터페이스 유형이고 nil 값이 사용되지 않는 것을 확인할 수 있는 경우 다음을 수행할 수 있습니다. 두 개의 인덱스 표현식을 사용하여 튜플 할당을 수행합니다:
if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil { // ... }
도우미 함수:
두 맵에서 키 존재 확인을 수행하기 위해 도우미 함수를 생성할 수 있습니다. 그리고 결과를 반환합니다:
func idx(m1, m2 map[string]interface{}, k string) ( v1, v2 interface{}, ok1, ok2 bool) { v1, ok1 = m1[k] v2, ok2 = m2[k] return }
그런 다음 이 함수를 다음과 같이 사용할 수 있습니다. 다음은 다음과 같습니다.
if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 { // ... }
이러한 접근 방식을 사용하면 단일 조건문 내에서 여러 맵의 키 존재를 간결하고 효율적으로 확인할 수 있습니다.
위 내용은 여러 Go 맵에서 키 존재를 효율적으로 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!