문제

이동 중에 기능 대신 연산자를 사용할 수 있습니까?

예를 들어 다음 코드에서 교체 할 수 있습니다. add ~와 함께 +?

package main

import "fmt"

var cur, prev int = 1, 1

func fib(f func(int, int) int) int {
    return f(cur, prev)
}

func main() {
    add := func(x int, y int) int { return x + y };
    fmt.Println(fib(add))
}

연산자를 함수로 사용할 수 없다면이를 명확히하는 문서에 대한 링크에 감사드립니다.

도움이 되었습니까?

해결책

운영자는 GO (대부분의 다른 언어)의 일류 값이 아니므로 아니요, 인수로 전달할 수 없습니다. 심지어 심지어 문서화 a func(x,y int) int { return x+y } 그 예에서.

또한 운영자를위한 문법 해당 표현식이없는 연산자에 대한 옵션이 작동하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top