Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: @synthesize en 3 Julio 2010, 14:56 pm



Título: dudas en Ruby
Publicado por: @synthesize en 3 Julio 2010, 14:56 pm
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
  1. def fun()
  2. a =STDIN.gets
  3. a.to_i
  4. return a
  5. 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?



Título: Re: dudas en Ruby
Publicado por: .: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
  1. def funcion(arg)
  2.  arg.to_i
  3.  return arg
  4. end

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

Código
  1. def funcion()
  2.  print "Introduce algo: "
  3.  arg = STDIN.gets #Tambien se puede usar gets.chomp
  4.  arg.to_i
  5.  return arg
  6. 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
  1. require 'unidad'


Título: Re: dudas en Ruby
Publicado por: @synthesize en 3 Julio 2010, 17:21 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
  1. def funcion(arg)
  2.  arg.to_i
  3.  return arg
  4. end

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

Código
  1. def funcion()
  2.  print "Introduce algo: "
  3.  arg = STDIN.gets #Tambien se puede usar gets.chomp
  4.  arg.to_i
  5.  return arg
  6. 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
  1. 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?


Título: Re: dudas en Ruby
Publicado por: .:WindHack:. en 3 Julio 2010, 17:29 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.


Título: Re: dudas en Ruby
Publicado por: @synthesize en 4 Julio 2010, 00:09 am
¿Algún consejo para un novato? Se ve que entiendes. Solo te puedo decir que vengo de programar en C...