Go에서는 가변 매개변수를 일반 함수에 사용할 수 있으므로 가변 개수의 매개변수를 허용하고 여러 유형에 적합한 일반 함수를 생성할 수 있습니다. 예를 들어, 주어진 목록에서 가장 자주 발생하는 요소를 찾는 일반 함수 Mode를 만들 수 있습니다. Mode는 T 유형의 다양한 요소 수를 허용합니다. 각 요소에 대한 개수를 생성하여 요소의 개수를 계산합니다. 그런 다음 가장 많이 나타나는 요소를 찾아서 모드로 반환합니다. 기본 함수에서는 문자열 목록과 정수 목록에 대해 Mode 함수를 호출할 수 있습니다. 이 함수는 각각 가장 자주 사용되는 문자열과 숫자를 반환합니다.
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
函数中,我们创建了两个列表:一个字符串列表和一个整数列表,并为每个列表调用了 Mode
rrreee[]
구문을 사용하여 표현됩니다. 예: 🎜rrreee🎜🎜변수 매개변수와 제네릭🎜🎜🎜가변 매개변수와 제네릭을 Go에서 함께 사용할 수 있으므로 A를 만들 수 있습니다. 가변 개수의 인수를 허용하고 다양한 유형에서 작동하는 일반 함수입니다. 🎜🎜🎜실용 사례🎜🎜🎜🎜작업 목표: 🎜주어진 목록에서 가장 많이 나타나는 요소를 찾는 일반 함수를 만듭니다. 🎜🎜🎜코드: 🎜🎜rrreee🎜🎜설명: 🎜🎜Mode
함수는 다양한 개수의 T
유형 요소를 허용하는 일반 함수입니다. 🎜🎜가장 많이 발생하는 요소를 반환하고 counts
에서 각 요소의 발생 횟수를 계산합니다. 🎜🎜 main
함수에서는 문자열 목록과 정수 목록이라는 두 개의 목록을 만들고 각 목록에 대해 Mode
함수를 호출합니다. 🎜🎜출력 결과에 따르면 가장 자주 사용되는 요소는 "apple"(문자열 목록의 경우) 및 2(정수 목록의 경우)입니다. 🎜🎜위 내용은 일반 함수에서 golang 변수 매개변수를 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!