>백엔드 개발 >Golang >Go의 `...interface{}`(가변 인터페이스) 매개변수는 무엇입니까?

Go의 `...interface{}`(가변 인터페이스) 매개변수는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-16 21:18:21148검색

What is the `...interface{}` (Variadic Interface) Parameter in Go?

...인터페이스의 의미 이해{}(가변 인터페이스)

아래 Go 코드 스니펫:

func DPrintf(format string, a ...interface{}) (n int, err error) {
  if Debug > 0 {
    n, err = fmt.Printf(format, a...)
  }
  return
}

a ...interface{} 매개변수 정의는 다음과 같은 질문을 제기합니다. 이 함수에서 a는 무엇입니까? 여기에서 세 개의 점은 a가 가변 매개변수임을 나타내며, 이를 통해 이 매개변수에 원하는 수의 인수를 전달할 수 있습니다.

매개변수 a는 본질적으로 []인터페이스{} 유형의 조각입니다. DPrintf를 호출하면 슬라이스에 저장될 여러 인수를 전달할 수 있습니다. 예:

DPrintf("Value: %v", 10)

이 호출에서 DPrintf는 슬라이스에 저장된 단일 인수(10)를 받습니다.

...interface{} 유형은 요소가 슬라이스의 유형은 무엇이든 될 수 있습니다. 이는 인터페이스{}가 Go에서 가장 일반적인 인터페이스 유형이므로 어떤 구체적인 유형이라도 이를 구현할 수 있기 때문입니다.

Variadic 매개변수 사용의 이점:

Variadic 매개변수는 여러 가지 이점:

  • 유연성: Variadic 매개변수를 사용하면 인수 개수에 제한 없이 함수를 생성할 수 있습니다. 매우 유연합니다.
  • 코드 재사용성: 가변 매개변수를 사용하면 다양한 인수 개수에 대해 별도의 함수를 작성할 필요 없이 다양한 시나리오에서 사용할 수 있는 일반 함수를 생성할 수 있습니다.

사용 예:

여기 variadic을 사용하는 방법에 대한 또 다른 예가 있습니다. 매개변수:

func Min(nums ...int) int {
  if len(nums) == 0 {
    return 0
  }

  min := nums[0]
  for _, num := range nums {
    if num < min {
      min = num
    }
  }
  return min
}

이 함수에서 nums ...int 매개변수를 사용하면 원하는 수의 정수를 전달할 수 있습니다. 그런 다음 함수는 이러한 정수 중에서 최소값을 찾습니다.

위 내용은 Go의 `...interface{}`(가변 인터페이스) 매개변수는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.