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 } } }
Kā ar Map strādāt, ja izmanto tikai atslēgas, nesaglabājot vērtības?
Vai jums ir pieredze ar slāņu arhitektūru?
Vai ir termiņi vai jau ir piedāvājumi?
Kādas pasākumus var veikt, lai novērstu atvērtu failu deskriptoru limita pārsniegšanu sistēmā?
Kā paslēpt objekta iekšējās detaļas Go valodā?
Vai jūs varat izskaidrot slāņainās arhitektūras koncepciju un tās galvenās sastāvdaļas?
Kādā ceļā iet gorutina pēc sistēmas funkcijas izsaukšanas?
Kā efektīvi atjaunināt vai izvilkt skaitītāja vērtības kartes datu struktūrā?
Kāds ir elementu apmeklējuma kārtība Go map? (fiksēta pēc noteikta algoritma / nejauša, noteikta kompilācijas laikā / nejauša, noteikta izpildes laikā)
Vai jūs varētu izskaidrot, ko nozīmē termins User Manager?
Skaidrojiet uzdevumu sadalīšanas koncepciju starp vairākiem pavedieniem vai procesiem, lai optimizētu sistēmas darbu. Ko nozīmē termins Work-Sharing?
Kādi ir lietojumprogrammas servera daļas priekšrocības un trūkumi?
Kādi mehānismi nodrošina Kafka izturību pret kļūdām un datu zudumu?
Vai var pievienot elementu slice, kas vēl nav izveidots vai inicializēts?
Kādas situācijas var rasties vienlaicīgas ierakstīšanas laikā kartes tipa glabātuvē?
Vai ir iespējams veikt datu lasīšanas operāciju no sēkļa, kas nav iepriekš inicializēts?
Kādus metodes un rīkus jūs zināt vispārējās programmēšanas īstenošanai savos projektos?
Vai jums ir kādi jautājumi mums?
Kā objektorientētā struktūra ir īstenota Go valodā un kā tā atšķiras no klasiskās?