Mi chiedevo perché le persone che hanno scritto la libreria File
hanno deciso di creare gli argomenti che determinano in quale modalità il file viene aperto nelle stringhe anziché nei simboli.Perché gli argomenti non sono File.new invece di stringhe?
Per esempio, questo è come è ora:
f = File.new('file', 'rw')
Ma non sarebbe un progetto di meglio da fare
f = File.new('file', :rw)
o anche
f = File.new(:file, :rw)
per esempio ? Questo sembra essere il posto perfetto per usarli dato che la discussione non ha bisogno di essere mutabile.
Sono interessato a sapere perché è venuto in questo modo.
Aggiornamento: ho appena finito di leggere a related question about symbols vs. strings, e penso che il consenso fosse che i simboli non sono altrettanto noti come stringhe, e tutti sono abituati a usare le stringhe per indicizzare le tabelle di hash in ogni caso. Tuttavia, non penso che sarebbe valido per i progettisti della libreria standard di Ruby far valere l'ignoranza sul tema dei simboli, quindi non credo che sia la ragione.
Questo è probabilmente solo un artefatto storico che riporta a 'fopen' in libc. –
Stai suggerendo di definire un simbolo univoco per ogni permutazione valida delle modalità 'File.new' (' r', 'w',' + ',' a', 'b',' t')? – Gabe
Ottima domanda. Ci sono costanti come 'File :: RDWR' e' File :: CREAT' che puoi usare, ma non riesco a trovare la documentazione su di esso. La 'File' [documentazione] (http://www.ruby-doc.org/core/classes/File.html) usa queste costanti, ma non le spiega. – rdvdijk