Golang
func Copy(src io.Reader, dst io.Writer) error { //... } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) (statusCh, error) { //... go func() { statusCh }() } func Read() { select { case status := <-statusCh: } } type Stat struct { status string err error } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) go func() { statusCh{ } } return statusCh } func Read() { select { case status := <-statusCh: } } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { select { case : n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } default: statusCh <- Stat{ bCopy: total, status: "pending", err: nil, } } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } }
Hogyan lehet Map-ként dolgozni, amikor csak kulcsokat használunk, értékek tárolása nélkül?
Van tapasztalata rétegek alapú architektúrával kapcsolatban?
Vannak határidők vagy már ajánlatok?
Milyen intézkedéseket lehet tenni a rendszerben az nyitott fájldeskriptorok limitjének túllépése ellen?
Hogyan lehet elrejteni egy objektum belső részleteit a Go nyelvben?
Tudná elmagyarázni a réteges architektúra fogalmát és fő összetevőit?
Milyen úton halad a gorutina a rendszer rendszerfüggvényének hívása után?
Hogyan lehet hatékonyan frissíteni vagy kivenni a számláló értékeit egy map adatszerkezetben?
Mi a sorrendje a map elemeinek bejárásának Go-ban? (egy meghatározott algoritmus szerint rögzített / véletlenszerű, fordítási időben meghatározott / véletlenszerű, futási időben meghatározott)
Meg tudná magyarázni, mit értünk User Manager alatt?
Magyarázza el a feladatmegosztás koncepcióját több szál vagy folyamat között a rendszer működésének optimalizálása érdekében. Mit jelent a Work-Sharing kifejezés?
Milyen előnyei és hátrányai vannak az alkalmazás szerver oldalának?
Milyen mechanizmusok biztosítják a Kafka ellenálló képességét a hibákkal és az adatvesztéssel szemben?
Hozzá lehet adni egy elemet egy olyan szelethez, amely még nem lett létrehozva vagy inicializálva?
Milyen helyzetek fordulhatnak elő egy térkép típusú tárolóba történő egyidejű írás során?
Lehetséges-e adatolvasási művelet végrehajtása egy olyan szeletből, amelyet előzetesen nem inicializáltak?
Milyen módszereket és eszközöket ismersz a generikus programozás megvalósításához a projektjeidben?
Vannak kérdéseid hozzánk?
Hogyan valósul meg az objektum-orientált szerkezet a Go nyelvben, és miben különbözik a klasszikustól?