Pointeri u Golangu postoje sa razlogom. S obzirom da koristiš JS, ti si naučio da prosleđuješ objekte po referenci, jer je to jedini način. U suštini u JS imaš samo pokazivače. Golang ti nudi dva načina prosleđivanja struktura, po referenci i po vrednosti. Danas je memorija jeftina (bar je bila do pojave AI balona), ali su promašaji keša skupi. Zato moderni jezici preferiraju korišćenje steka i prosleđivanje struktura po vrednosti, a ne po referenci. Go je osmišljen kao jezik koji podržava konkuretno programiranje. Ključna reč za pokretanje gorutine je samo ime jezika, što dovoljno govori koliko je konkurentnost bitna za Go. Konkurentnost nameće problem sinhronizacije. Kada gorutina dobije kopiju strukture, onda se ne moraju koristiti mehanizmi za zaključavanje. Naravno, ne možeš uvek da prosleđuješ kopije, pa zato kada treba da proslediš original, ti proslediš pointer i obezbediš pristup resursu muteksom. Ovo što sam napisao do sada odnosi se na semantiku, ako ti smeta korišćenje zvezdice i za to postoji dobar razlog. C je najpopopularnji programski jezik svih vremena, tako da je upotrebljeno nešto što je većini programera poznato.
U navedenom primery y se i puta deklariše!
Što se tiče := ne vidim u čemu je problem. Ko voli da kuca može da koristi dužu varijantu, var promenljiva tip. Tvoje y je se deklariše i puta, tako i treba jer si tako napisao. Nebitno je koliko se puta deklariše, bitan je opseg važenja. Ako si želeo da y postoji i nakon izlaska iz petlje, onda je trebalo da deklarišeš promenljivu iznad petlje.
Hoćeš da kažeš da je u JavaSkriptu jednostavnije parsirati JSON (Java Skript Object Notation). Zvuči mi logično, ipak prva dva slova u akronimu JSON stoje za JavaScript. Pa, ako je već tako, evo programa koji umesto da parsira samo JSON, parsira i izvršava kompletan JavaScript :) Ako Go može da parsira kompletan JavaScript, to možda znači da si ti imao problem sa konkretnom JSON bibliotekom za go, a ne da se go "zagrcne" i ne može to da uradi.
package main
import (
"fmt"
"strconv"
"github.com/dop251/goja"
)
func main() {
str := `{"A":"b","C":[{"D":"e","false":1,"g":[{"1":2,"3":"H","4":true},{"I":"j","k":"L","M":"n"}]}],"D":1769508300000}`
vm := goja.New()
vm.RunString(`
var o;
function setObj(str) {
o = JSON.parse(str);
}
function formatirajJson() {
return JSON.stringify(o, null, 2);
}
function upit(q) {
return eval(q)
}
function t() {
var t={
159:"FF1",
170:"DC"
};
return t
}
`)
var setObj func(string)
vm.ExportTo(vm.Get("setObj"), &setObj)
setObj(str)
var formatirajJson func(string) string
vm.ExportTo(vm.Get("formatirajJson"), &formatirajJson)
fmt.Println(formatirajJson(str))
var upit func(string) any
vm.ExportTo(vm.Get("upit"), &upit)
fmt.Println(upit(`o.C[0].g[1]["k"]`))
var t func() any
vm.ExportTo(vm.Get("t"), &t)
tobj := t()
x := 170
fmt.Println(getJsObj(tobj).at(x))
}
type jsobjekat map[string]any
func (o jsobjekat) at(x any) any {
var kljuc string
switch x := x.(type) {
case int:
kljuc = strconv.Itoa(x)
case string:
kljuc = x
default:
panic("nepoznat tip ključa")
}
return o[kljuc]
}
func getJsObj(obj any) jsobjekat {
return obj.(map[string]any)
}
Wails nisam koristio, mislio sam da ćeš ti, pa da ćeš mi reći. Mene je na prvi pogled privuklo što liči na Elektron, ali nije toliko glomazan i spor i što bih mogao da koristim Go umesto JS.

Re: Program za objavljivanje poruka na EMZ