Maison >développement back-end >Golang >Golang lira-t-il le bloc ?

Golang lira-t-il le bloc ?

(*-*)浩
(*-*)浩original
2019-12-17 10:34:254591parcourir

Golang lira-t-il le bloc ?

L'interface Reader en langage Go définit une opération Read, et ceux qui implémentent l'interface Reader ont la fonction Read.                                                                                                                                                                                             n représente le nombre réel de octets lus cette fois, (0 <= n <= len(p))

err Indique le rapport d'erreur de cette opération de lecture (le cas échéant, nul sinon) Même si le nombre d'octets lus n est inférieur à len(p), le corps appelant peut également l'utiliser lors de l'appel de la fonction . L'intégralité de l'espace p (je ne sais pas ce que cette description est censée exprimer)

Lors de la lecture des données, même si ce n'est pas suffisant len(p) (il n'y a pas de données dans le cache IO à ce stade). temps), l'opération de lecture sera généralement effectuée directement. Renvoie les données obtenues au lieu de continuer à attendre que davantage de données arrivent dans le tampon IO

Lorsque l'opération de lecture rencontre une erreur ou la fin du fichier après avoir lu avec succès n octets de données, il renverra les n octets de données lues, puis le retour de err peut avoir deux opérations :

Dans cette opération de lecture, n (>0 ) et err (non nul) sont renvoyés.

Ou cette opération de lecture renvoie n (>0) et nul, et l'appel suivant renvoie 0 et err (non nul)

Les deux opérations sont possibles, donc l'appelant doit toujours d'abord déterminer si des données sont renvoyées selon n>0, au lieu de déterminer d'abord si l'erreur est nulle

Par exemple, lorsqu'un certain appel atteint la fin du fichier et lit également Lorsque n octets de données sont nécessaires, Reader peut être implémenté de deux manières :

L'appel en cours renvoie n et une erreur EOF

L'appel en cours renvoie n et nil, et le prochain appel renvoie 0 Et l'implémentation de EOF

Read ne doit pas renvoyer 0 et nil, c'est-à-dire que lors du retour de 0, elle doit renvoyer une erreur non nulle, à moins que la taille du tampon space est 0, alors l'appelant doit ignorer l'appel de 0 et les combinaisons de valeurs de retour telles que nil sont traitées comme si de rien n'était. Il est particulièrement souligné que ce retour n'indique pas EOF

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn