함수 포인터는 함수의 메모리 주소를 가리키는 Go의 변수로, 값 유형과 같은 함수를 처리할 수 있습니다. 매개변수로 전달되면 동적 동작을 제공합니다. 함수 포인터 유형 정의: func(*TypeName)ReturnType 함수 포인터를 기반으로 다양한 기능을 구현하려면 함수 포인터를 매개변수로 함수에 전달합니다(예: 비교 함수를 통한 정렬) )
Go에서 함수 포인터를 매개변수로 전달하기
함수 포인터 이해하기
Go에서 함수 포인터는 함수를 가리키는 변수입니다. 이는 본질적으로 함수의 메모리 주소에 대한 포인터입니다. 함수 포인터를 사용하면 다른 값 유형과 마찬가지로 함수를 처리할 수 있습니다.
함수 포인터 구문
함수 포인터 유형은 다음 구문으로 정의됩니다.
func(*TypeName)ReturnType
예를 들어, 다음 코드는 int 매개변수를 받고 int 값을 반환하는 함수에 대한 포인터를 정의합니다.
type fnType func(int) int
함수 포인터 매개변수로
함수 포인터는 다른 함수의 매개변수로 전달될 수 있습니다. 이를 통해 함수에 동적으로 다양한 동작을 제공할 수 있습니다.
실용 사례: 정렬 함수
정수 집합을 정렬해야 하는 시나리오를 생각해 보세요. 정수 조각과 함수 포인터를 인수로 받아들이는 sortInts
라는 함수를 정의할 수 있습니다. 함수 포인터는 정수를 비교하고 정렬하는 데 사용되는 함수를 지정합니다. sortInts
的函数,该函数接受一个整数切片和一个函数指针作为参数。函数指针将指定用于比较和排序整数的函数。
func sortInts(nums []int, compareFn fnType) { // 根据 compareFn 函数排序 nums }
我们可以在 main 函数中调用 sortInts
func main() { nums := []int{5, 2, 8, 3, 1} // 升序排序 sortInts(nums, func(a, b int) int { return a - b }) fmt.Println(nums) // [1 2 3 5 8] // 降序排序 sortInts(nums, func(a, b int) int { return b - a }) fmt.Println(nums) // [8 5 3 2 1] }
sortInts
를 호출하고 다양한 비교 함수를 전달하여 정수 슬라이스를 다르게 정렬할 수 있습니다. rrreee결론
함수 포인터는 Go의 강력한 도구로, 이를 통해 동적이고 재사용 가능한 코드를 만들 수 있습니다. 함수 포인터의 구문과 함수 포인터를 인수로 전달하는 메커니즘을 이해함으로써 복잡한 동작과 알고리즘을 쉽게 구현할 수 있습니다. 🎜위 내용은 매개변수로 전달된 golang 함수 포인터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!