• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BLAMIThe Go Programming Language - moderni programovaci jazyk
    BLAMI
    BLAMI --- ---
    LARS_GUNNER: myslim, ze vzhledem k tomu jak dukladne se to probiralo, tak veskrze pozitivni. Zli jazykove tvrdi ze Go prestane byt jednoduchy a proc to potrebujeme, kdyz to doted slo bez toho...

    Osobne si myslim, ze ze zacatku to bude overused, stejne jako byly channels a contexty, ale casem se to srovna.
    LARS_GUNNER
    LARS_GUNNER --- ---
    BLAMI: Ok, jake jsou ohlasy?
    BLAMI
    BLAMI --- ---
    ...aaand accepted
    spec: add generic programming using type parameters · Issue #43651 · golang/go · GitHub
    https://github.com/golang/go/issues/43651#issuecomment-776944155
    BLAMI
    BLAMI --- ---
    generics draft je oficialni proposal
    A Proposal for Adding Generics to Go - The Go Blog
    https://blog.golang.org/generics-proposal

    JAVAMAN
    JAVAMAN --- ---
    VELDRANE: pouzij libku, Luku (https://github.com/buger/jsonparser treba)
    VELDRANE
    VELDRANE --- ---
    Cus neresil tu nekdy nekdo parsovani dynamickyho nested jsonu, kdy klice nejsou pevne dany ? Mam swagger-doc, kterej parsuju a delam snim naky kouzla ktery prevedu do jinyho komfiguraku. Nakonec sem to nejak sbastlil pres vicenasobny mapy (map[string]map[string]*typ)ale prijde mi to jako strasna prasarna. Vsichni to resej pres interfaces, ale priznam se ze sem to zatim nejak nepobral. Ma nekdo nakej typ na elegantni reseni ?
    RAGNAROK
    RAGNAROK --- ---
    GitHub - gdamore/tcell: Tcell is an alternate terminal package, similar in some ways to termbox, but better in others.
    https://github.com/gdamore/tcell
    NYX
    NYX --- ---
    RAGNAROK: Vemes nil, pretypujes ho na pointer na instanci tveho typu (ale ten pointer smeruje na nil, ne na zadnou konkretni instanci) a to podstrcis te reflexi uvnitr registertype.
    RAGNAROK
    RAGNAROK --- ---
    Jezis tohle jsem hledal dloho. Konecne uz se nebudu jebat z reflectem.
    https://stackoverflow.com/a/34722791
    The Go Playground
    https://play.golang.org/p/gSHXnNTvUn

    Moc teda nerozum syntax na line 21:
    registerType((*MyString)(nil))
    BULHI
    BULHI --- ---
    BULHI: hlavni zlepsovak pro me je, ze jsem zacal konecne pouzivat goimports :) sice jsem o tom vedel, ale dokud jsem to nevidel takhle na videu, tak jsem si neuvedomil, jak hrozne me ta hlaska "imported and not used" pokazdy vytoci :))
    BULHI
    BULHI --- ---
    BULHI
    BULHI --- ---
    RAGNAROK: jo ten playground je takhle omezenej.. treba random cisla taky dostanes pokazdy stejnou sekvenci :)
    RAGNAROK
    RAGNAROK --- ---
    Takhle jsem si to nejak predstavoval:
    The Go Playground
    https://play.golang.org/p/OpMYk6K6kvp
    akorat playground pro volani time.Now() vrati vzdycky, jinak to normalne funguje.
    2009-11-10 23:00:00 +0000 UTC m=+0.000000001
    RAGNAROK
    RAGNAROK --- ---
    BULHI:
    ten konstruktor je super. Me napadlo neco podobnyho. Ze bych vytvoril strukturu s parametrama a na te strukture definovat funkci. Zkousel jsem posilat parametry po jinym chanelu ale to mi nefungovalo.

    Dekuji.
    BULHI
    BULHI --- ---
    RAGNAROK: no hele nevim, jestli tomu uplne rozumim, ale timhle tu funkci rovnou zavolas s tema parametrama a predavas pak jeji vystup
    func(10,"abc")


    takze bud teda parametry musis predat pri jejim volani a dostat je tam nejak jinak:
    
    func worker(task func(string)) {
        task("asdf")
    }
    
    printer := func(s string) {
        fmt.Println(s)
    }
    
    worker(printer)
    


    nebo pouzit closure, tj treba nejakej jakoby konstruktor, kde nastavis promenny, takze neco ve smyslu:
    
    func worker(task func()) {
        task()
    }
    
    func createPrinter(s string) func() {
        return func() {
            fmt.Println(s)
        }
    }
    
    printer1 := createPrinter("asdf")
    printer2 := createPrinter("qwerty")
    
    worker(printer1)
    worker(printer2)
    


    v Go ma anonymni funkce pristup k promennejm ve svym scope, coz je myslim stejne napriklad v Javascriptu, ale v PHP to myslim takhle nefunguje.. ale uz si teda nejsem jistej, nejak se mi to zacina plest :))
    RAGNAROK
    RAGNAROK --- ---
    Tady koukam na to jak pridavat joby do fronty.
    Job Queues in Go - OpsDash
    https://www.opsdash.com/blog/job-queues-in-go.html
    Tohle funguje dobre:
    
    func worker(jobChan <-chan func()) {
        for job := range jobChan {
            process(job)
        }
    }
    


    Akorat bych potreboval posilat funcke i s jejich prametrama na to nemuzu prijit jak. Ty parametry by meli mit hodnotu platnou prave v momente kdyz pridam job.
    Napr:.
    
    <-func(10,"abc")
    

    to mi pise ze posilam value a ne funkci. Nevedel by nekdo prosim?
    JAVAMAN
    JAVAMAN --- ---
    tak ale doufam, ze se s tim nepotkam "in the wild" :D https://youtu.be/buJPwD5nW1g?t=112
    RAGNAROK
    RAGNAROK --- ---
    JAVAMAN:
    to vypada nadejne.
    JAVAMAN
    JAVAMAN --- ---
    https://play.golang.org/p/TvkaGy3l1za nejsem moc mimo s pochopenim otazky?
    RAGNAROK
    RAGNAROK --- ---
    CUCHULAIN:
    Problem je ze kdyz pouziju F(i interface{}) tak tam nemuzu naprasit funkci a kdyz pouziju F(g func() []byte) tak tam zas nemuzu naprasit []byte.
    Kliknutím sem můžete změnit nastavení reklam