>  기사  >  백엔드 개발  >  일반 함수에서 golang 변수 매개변수를 사용할 수 있나요?

일반 함수에서 golang 변수 매개변수를 사용할 수 있나요?

PHPz
PHPz원래의
2024-04-29 14:06:01375검색

Go에서는 가변 매개변수를 일반 함수에 사용할 수 있으므로 가변 개수의 매개변수를 허용하고 여러 유형에 적합한 일반 함수를 생성할 수 있습니다. 예를 들어, 주어진 목록에서 가장 자주 발생하는 요소를 찾는 일반 함수 Mode를 만들 수 있습니다. Mode는 T 유형의 다양한 요소 수를 허용합니다. 각 요소에 대한 개수를 생성하여 요소의 개수를 계산합니다. 그런 다음 가장 많이 나타나는 요소를 찾아서 모드로 반환합니다. 기본 함수에서는 문자열 목록과 정수 목록에 대해 Mode 함수를 호출할 수 있습니다. 이 함수는 각각 가장 자주 사용되는 문자열과 숫자를 반환합니다.

일반 함수에서 golang 변수 매개변수를 사용할 수 있나요?

Go에서 가변 매개변수가 있는 일반 함수

머리말

제네릭은 Go 1.18에서 도입되었으며, 이를 통해 특정 유형의 매개변수에 의존하지 않는 함수와 유형을 만들 수 있습니다. 이 블로그 게시물에서는 Go의 변수 매개변수가 일반 함수에 적합한지 알아보고 실제 사례를 제공합니다.

Varameters

가변 함수는 가변 개수의 매개변수를 허용하는 함수입니다. Go에서 가변 매개변수는 일반적으로 ... 구문을 사용하여 표현됩니다. 예: ... 语法表示,例如:

func Sum(nums ...int) int {
  sum := 0
  for _, num := range nums {
    sum += num
  }
  return sum
}

泛型函数

泛型函数是参数类型可指定的函数。在 Go 中,泛型函数使用 [] 语法表示,例如:

func Max[T comparable](values ...T) T {
  max := values[0]
  for _, value := range values {
    if value > max {
      max = value
    }
  }
  return max
}

变参和泛型

变参和泛型在 Go 中可以一起使用,允许我们创建可接受可变数量参数且适用于多种类型的泛型函数。

实战案例

任务目标:创建泛型函数来查找给定列表中出现次数最多的元素。

代码:

import "fmt"

func Mode[T comparable](values ...T) T {
  counts := map[T]int{}
  var mode T
  var maxCount int

  // 统计元素计数
  for _, value := range values {
    counts[value]++
  }

  // 找出出现次数最多的元素
  for value, count := range counts {
    if count > maxCount {
      maxCount = count
      mode = value
    }
  }

  return mode
}

func main() {
  // 字符串列表
  strs := []string{"apple", "orange", "apple", "pear", "banana"}
  fmt.Println("最常见的字符串:", Mode(strs...)) // apple

  // 整数列表
  nums := []int{1, 2, 3, 2, 4, 2, 5}
  fmt.Println("最常见的数字:", Mode(nums...)) // 2
}

说明:

  • Mode 函数是一个泛型函数,接受可变数量的 T 类型元素。
  • 它返回出现次数最多的元素,并在 counts 中统计每个元素的出现次数。
  • main 函数中,我们创建了两个列表:一个字符串列表和一个整数列表,并为每个列表调用了 Moderrreee
  • 일반 함수
🎜일반 함수는 매개변수 유형을 지정할 수 있는 함수입니다. Go에서 일반 함수는 [] 구문을 사용하여 표현됩니다. 예: 🎜rrreee🎜🎜변수 매개변수와 제네릭🎜🎜🎜가변 매개변수와 제네릭을 Go에서 함께 사용할 수 있으므로 A를 만들 수 있습니다. 가변 개수의 인수를 허용하고 다양한 유형에서 작동하는 일반 함수입니다. 🎜🎜🎜실용 사례🎜🎜🎜🎜작업 목표: 🎜주어진 목록에서 가장 많이 나타나는 요소를 찾는 일반 함수를 만듭니다. 🎜🎜🎜코드: 🎜🎜rrreee🎜🎜설명: 🎜🎜
    🎜Mode 함수는 다양한 개수의 T 유형 요소를 허용하는 일반 함수입니다. 🎜🎜가장 많이 발생하는 요소를 반환하고 counts에서 각 요소의 발생 횟수를 계산합니다. 🎜🎜 main 함수에서는 문자열 목록과 정수 목록이라는 두 개의 목록을 만들고 각 목록에 대해 Mode 함수를 호출합니다. 🎜🎜출력 결과에 따르면 가장 자주 사용되는 요소는 "apple"(문자열 목록의 경우) 및 2(정수 목록의 경우)입니다. 🎜🎜

위 내용은 일반 함수에서 golang 변수 매개변수를 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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