dudas en Ruby

Iniciado por @synthesize, 3 Julio 2010, 14:56 PM

0 Miembros y 1 Visitante están viendo este tema.

@synthesize

Empecé ayer con Ruby (Me lo piden en cierto sitio  :-X) y empecé a estudiar con el irb bajo gnu/linux.

Tengo algunas dudas, espero que me las puedan responder:

1. Al crear una función, no hace lo que yo quiero.

escribo:

Código (ruby) [Seleccionar]
def fun()
a =STDIN.gets
a.to_i
return a
end


pero me devuelve siempre una cadena.

Lo que quiero hacer es introducir un número y que me lo devuelva como integer.

2. ¿Qué significa => nil ? Es que me aparece mucho pero ni idea..

3. ¿Cual es la directiva para incluir módulos y cuales son los mas usados?


.:WindHack:.

Hola,

1. El problema con la función es que no declaras el argumento y estás manejando STDIN con un dato que prácticamente no existe. Si bien, no quieres declarar el argumento debes de tener en cuenta que antes de usar STDIN.gets debes de pedir el dato.

Con argumento:

Código (ruby) [Seleccionar]
def funcion(arg)
  arg.to_i
  return arg
end


Sin argumento, y pidiendo el dato en la misma función:

Código (ruby) [Seleccionar]
def funcion()
  print "Introduce algo: "
  arg = STDIN.gets #Tambien se puede usar gets.chomp
  arg.to_i
  return arg
end


2. nil. Ese es el resultado de la expresión. Significa "absolutamente nada" en Ruby.

3. Creo que la directiva que se usa es:
Código (ruby) [Seleccionar]
require 'unidad'

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

@synthesize

Cita de: .:WindHack:. en  3 Julio 2010, 17:04 PM
Hola,

1. El problema con la función es que no declaras el argumento y estás manejando STDIN con un dato que prácticamente no existe. Si bien, no quieres declarar el argumento debes de tener en cuenta que antes de usar STDIN.gets debes de pedir el dato.

Con argumento:

Código (ruby) [Seleccionar]
def funcion(arg)
  arg.to_i
  return arg
end


Sin argumento, y pidiendo el dato en la misma función:

Código (ruby) [Seleccionar]
def funcion()
  print "Introduce algo: "
  arg = STDIN.gets #Tambien se puede usar gets.chomp
  arg.to_i
  return arg
end


2. nil. Ese es el resultado de la expresión. Significa "absolutamente nada" en Ruby.

3. Creo que la directiva que se usa es:
Código (ruby) [Seleccionar]
require 'unidad'

Todavía no me acostumbro a esto de no declarar variables :S

Entonces, con hacer def funcion(argumento) ya puedo manejar argumento como local de funcion?

.:WindHack:.

Cita de: Daemon Freedom en  3 Julio 2010, 17:21 PM
Todavía no me acostumbro a esto de no declarar variables :S

Entonces, con hacer def funcion(argumento) ya puedo manejar argumento como local de funcion?

Sí, claro.
Al declarar el argumento en la definición de la función ya puedes manejarlo como local de la misma.

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

@synthesize

#4
¿Algún consejo para un novato? Se ve que entiendes. Solo te puedo decir que vengo de programar en C...