Estoy en una situación en la que necesito el valor ASCII de un carácter (para Project Euler question #22, si desea obtener información específica) y estoy ejecutando en un problema.Obtener un código de carácter ASCII en Ruby con `?` (Signo de interrogación) falla
Siendo nuevo en ruby, lo busqué en Google, y encontré que ?
era el camino a seguir: ?A
o lo que sea. Pero cuando lo incorporo a mi código, el resultado de esa declaración es la cadena "A"
-no código de carácter. Mismo problema con [0]
y slice(0)
, los cuales teóricamente deberían devolver el código ASCII.
Lo único que se me ocurre es que se trata de una versión de rubí. Estoy usando 1.9.1-p0, habiéndome actualizado desde 1.8.6 esta tarde. Me engañé un poco yendo de una versión funcional de Ruby, en el mismo directorio, pensé que probablemente ya tenía los archivos que no vienen incluidos con el archivo .zip, así que no los descargué.
¿Por qué exactamente todos mis códigos ASCII se convierten en caracteres reales?
Solo para completar, la versión 1.9.3 o posterior no necesita '?' Firme antes de la carta, podemos obtener el valor entero solo con: a.ord – yat0
@polska: Creo que puede haber entendido mal. Los ? significa que queremos el carácter 'a', por lo que escribir '? a.ord' da 97, mientras que simplemente escribir' a.ord' busca una variable o método llamado 'a' y arrojará un NameError si no hay nada con ese nombre o un NoMethodError si la variable 'a' no contiene una cadena. – Chuck
Sí, tienes razón ... He entendido mal. Funciona con? A.ord o "a" .ord – yat0