Domanda

E 'possibile utilizzare un operatore in luogo di una funzione in go?

Ad esempio, nel seguente codice è possibile sostituire con 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))
}

Se non è possibile utilizzare gli operatori come funzioni, quindi gradirei un link alla documentazione di chiarire questo.

È stato utile?

Soluzione

Gli operatori sono valori non di prima classe in Go (né maggior parte delle altre lingue), quindi no, non è possibile passarli come argomenti. Si noti che anche il Vai documentazione utilizza un func(x,y int) int { return x+y } nei suoi esempi.

Si noti inoltre che il grammatica per gli operatori non consente alcuna possibilità di un operatore, senza un'espressione corrispondente di operare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top