Sto scrivendo un codice che ha bisogno di funzionalità che è quasi soddisfatta dal metodo ReadBytes
nel pacchetto bufio
. In particolare, quel metodo legge da un Reader
finché non incontra un particolare byte. Ho bisogno di qualcosa che legga fino a quando non incontra uno su due byte (spazio, newline e tab principalmente).L'aggiunta di una nuova funzione a uno già esistente (standard) pacchetto
Ho esaminato il codice sorgente della libreria e so cosa fare se ho accesso al buffer interno utilizzato dalle strutture bufio
. C'è un modo per "riprodurre patch" del pacchetto e aggiungere un altro metodo o due? O un altro modo per ottenere la funzionalità di cui ho bisogno?
Una delle principali ragioni ci sono campi privati nascosti è quello di rendere possibile per l'attuazione di evolversi in futuro senza impatto sugli utenti. Consentendo di accedere a byte, si rompe questa garanzia. Quindi non vedo altro modo corretto di creare la propria (limitata) struttura e metodo Reader. –
La tua domanda riguarda una soluzione (miglioramento del bufio) che hai in mente per il tuo problema reale (leggendo un determinato formato di dati). Come indicano le risposte e i commenti, le funzionalità del pacchetto di Go sono state effettivamente progettate per impedirti di farlo. Potrebbe essere meglio prendere in considerazione altre soluzioni o anche postare un'altra domanda su SO con i dettagli del formato dei dati e chiedere "qual è un buon modo per leggere questo formato di delimitatore multiplo?" – Sonia