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 } } }
Как може да се работи с Map, когато използвате само ключове, без да съхранявате стойности?
Имали ли сте опит с архитектура, базирана на слоеве?
Има ли срокове или вече има оферти?
Какви мерки могат да бъдат предприети за предотвратяване на превишаването на лимита на отворените дескриптори на файлове в системата?
Как да скрием вътрешните детайли на обект в езика Go?
Можете ли да обясните концепцията за слоеста архитектура и нейните основни компоненти?
По какъв път минава горутината след извикването на системната функция на системата?
Как ефективно да актуализирате или извлечете стойностите на брояча в структура от данни map?
Какъв е редът на обхождане на елементите в map в Go? (фиксиран според някакъв алгоритъм / произволен, определян по време на компилация / произволен, определян по време на изпълнение)
Можете ли да обясните какво се разбира под термина User Manager?
Обяснете концепцията за разделяне на задачите между няколко нишки или процеси за оптимизиране на работата на системата. Какво означава терминът Work-Sharing?
Какви са предимствата и недостатъците на сървърната част на приложението?
Кои механизми осигуряват устойчивостта на Kafka към сривове и загуба на данни?
Може ли да бъде добавен елемент към слайс, който все още не е създаден или инициализиран?
Какви ситуации могат да възникнат при едновременен запис в хранилище тип карта?
Може ли да се извърши операция по четене на данни от срез, който не е бил предварително инициализиран?
Кои методи и инструменти познавате за реализиране на обобщено програмиране във вашите проекти?
Имаш ли въпроси към нас?
Как се реализира обектно-ориентираната структура в езика Go и как се различава от класическата?