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 } } }
Comment peut-on travailler avec une Map lorsque l'on utilise uniquement des clés, sans stocker de valeurs?
Avez-vous de l'expérience avec une architecture basée sur des couches?
Y a-t-il des délais ou des offres déjà faites?
Quelles mesures peuvent être prises pour éviter de dépasser la limite des descripteurs de fichiers ouverts dans le système?
Comment peut-on masquer les détails internes d'un objet en langage Go?
Pouvez-vous expliquer le concept d'architecture en couches et ses composants principaux?
Quel chemin la goroutine emprunte-t-elle après l'appel à la fonction système du système?
Comment mettre à jour ou extraire efficacement les valeurs du compteur dans une structure de données map ?
Quel est l'ordre de parcours des éléments dans une map en Go ? (fixe selon un certain algorithme / arbitraire, déterminé lors de la compilation / arbitraire, déterminé lors de l'exécution)
Pouvez-vous expliquer ce que l'on entend par le terme User Manager?
Expliquez le concept de division des tâches entre plusieurs threads ou processus pour optimiser le fonctionnement du système. Que signifie le terme Work-Sharing?
Quels sont les avantages et inconvénients de la partie serveur de l'application?
Quels mécanismes assurent la résilience de Kafka face aux défaillances et à la perte de données?
Peut-on ajouter un élément à une slice qui n'a pas encore été créée ou initialisée?
Quelles situations peuvent survenir lors de l'écriture simultanée dans un stockage de type carte?
Peut-on effectuer une opération de lecture de données à partir d'une tranche qui n'a pas été initialisée au préalable?
Quelles méthodes et outils connaissez-vous pour réaliser la programmation générique dans vos projets?
Avez-vous des questions pour nous?
Comment la structure orientée objet est-elle implémentée dans le langage Go et en quoi diffère-t-elle de la structure classique?