Sono in una situazione in cui ho bisogno del valore ASCII di un carattere (per Project Euler question #22, se si vuole ottenere specifico) e sto correndo in un problema.Ottenere un codice di carattere ASCII in Ruby usando `?` (Punto interrogativo) non riesce
Essendo nuovo al ruby, l'ho cercato su google e ho trovato che ?
era la strada da percorrere: ?A
o qualsiasi altra cosa. Ma quando lo incorporo nel mio codice, il risultato di tale affermazione è la stringa "A"
-no codice carattere. Stesso problema con [0]
e slice(0)
, entrambi i quali dovrebbero in teoria restituire il codice ASCII.
L'unica cosa che posso pensare è che questo è un problema di versione rubino. Sto usando 1.9.1-p0, dopo aver aggiornato da 1.8.6 questo pomeriggio. Ho imbrogliato un po 'passando da una versione funzionante di Ruby, nella stessa directory, ho pensato che probabilmente avevo già i file che non sono inclusi nel file .zip, quindi non li ho scaricati.
Quindi, perché esattamente tutti i miei codici ASCII vengono trasformati in caratteri reali?
Solo per completare, la versione 1.9.3 o successiva non necessita '?' segno prima della lettera, possiamo ottenere il valore intero solo con: a.ord – yat0
@polska: Penso che potresti aver frainteso. Il ? significa che vogliamo il carattere 'a', quindi scrivere '? a.ord' dà 97, mentre semplicemente scrivere' a.ord' cerca una variabile o un metodo chiamato 'a' e getterà un NameError se non c'è nulla con quel nome o un NoMethodError se la variabile 'a' non contiene una stringa. – Chuck
sì, hai ragione .. Ho frainteso. Funziona con? A.ord o "a" .ord – yat0