Maison > Article > développement back-end > 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)
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 nullePar 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 EOFL'appel en cours renvoie n et nil, et le prochain appel renvoie 0 Et l'implémentation de EOFRead 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!