I have been learning the Fyne library for making GUIs in Go, and have run into a problem.
func createResponses(content *fyne.Container){
for i:=0;i<address.childrenCount;i++{
content.Add(widget.NewButton(address.children[i].text,func(){
fmt.Println(i)
}))
}}
This is supposed to iterate through the children of a node, add a button with the text stored in that node, and then when clicked, print the value of i when it was created to the console. However, while the text of the button, the first parameter (address.children[i].text), displays correctly, the value of i always prints out the same, as 3, the number that causes the loop to terminate.
At first I though this was a specific problem to Fyne, or my poor understanding of how to use Go in general, but I recall having a similar problem when I first learned JavaFX. Is there something about GUIs that causes this behavior to emerge? More importantly, what is the proper way of dealing with this problem? Thank you!