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 } } }
Qanday qilib Map bilan ishlash mumkin, faqat kalitlar bilan, qiymatlarni saqlamasdan?
Qavatlarga asoslangan arxitektur bilan ishlash tajribangiz bormi?
Muddati yoki allaqachon takliflar bormi?
Tizimda ochiq fayl tavsiflovchilarining chegarasidan oshmaslik uchun qanday chora-tadbirlar ko‘rish mumkin?
Go tilida ob'ektning ichki tafsilotlarini qanday yashirish mumkin?
Qavatli arxitektura tushunchasi va uning asosiy komponentlarini tushuntirib bera olasizmi?
Sistem funktsiyasini chaqirgandan keyin gorutina qaysi yo'ldan o'tadi?
Xarita ma'lumotlar tuzilmasida hisoblagich qiymatlarini qanday samarali yangilash yoki chiqarish mumkin?
Go'da mapdagi elementlarni qanday tartibda o'tish mumkin? (belgilangan algoritm bo'yicha / tasodifiy, kompilyatsiya vaqtida aniqlanadi / tasodifiy, bajarilish vaqtida aniqlanadi)
User Manager atamasi nima ekanligini tushuntirib berishingiz mumkinmi?
Tizimli ish bo'linishi tushunchasini tushuntiring, bu tizimning ish faoliyatini optimallashtirish uchun bir nechta oqimlar yoki jarayonlar o'rtasida vazifalarni bo'lish. Work-Sharing termini nima anglatadi?
Ilovalarining server qismi qanday afzalliklari va kamchiliklari mavjud?
Kafka qanday qilib nosozliklar va ma'lumotlar yo'qotilishiga qarshi chidamliligini ta'minlaydi?
Yaratilmagan yoki boshlanmagan slice ga element qo'shish mumkinmi?
Xarita turidagi saqlashga bir vaqtning o'zida yozish paytida qanday holatlar yuzaga kelishi mumkin?
Oldindan tayyorlanmagan bo'lakdan ma'lumotlarni o'qish operatsiyasini amalga oshirish mumkinmi?
Loyihalaringizda umumiy dasturlashni amalga oshirish uchun qanday usullar va vositalarni bilasiz?
Bizga savollaringiz bormi?
Go tilida ob'ektga yo'naltirilgan tuzilma qanday amalga oshirilgan va u qanday farq qiladi?