Golang une fonction qui se returne à l’infini

fonction qui se renvoie elle même

type AB func()AB

package main

type AB func() AB

func main () {
var obj AB
obj = func() (ab AB) {
print(« ee »)
ab = obj
return
}
obj()()()()()()()()()()()()()()()()()()()()
}

En golang faire une fonction qui se renvoie elle même, peut sembler peut évident voir impossible à mettre en place. Car chaque return dois renvoyer une fonction qui return une fonction qui return une fonction.

Bref une histoire de pouper russe qu’il faudrait écrire à la main une infinité de fois.

package main

func g() (func()(func ()(func()(func()(…….)))))

func main () {
}

Heuresement, en Golang vous pouver créer un type qui pourras lui même se retourné.

type montype func()montype

ici on créé un type montype qui est une fonction qui return une variable de type montype.

Ainsi on évite d’écrire une une poupé russe infinie. et l’on peut même changer la function à condition que celle-ci return le type montype.

Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *