2009-01-06 10 views
19

"Todo es un objeto" fue una de las primeras cosas que aprendí sobre Ruby, pero en Peter Cooper's Principiante Ruby: De principiante a Profesional, se menciona que " casi todo en Ruby es un objeto ".Ejemplos de "Cosas" que no son Objetos en Ruby

¿Puede darme algunos ejemplos de cosas que no son objetos en Ruby?

Respuesta

13

El más obvio que salta en mi cabeza sería bloques. Los bloques se pueden reificar fácilmente en un objeto Proc, ya sea usando el formulario de parámetro &block en una lista de parámetros o usando lambda, proc, Proc.new o (en Ruby 1.9) la sintaxis "stabby lambda". Pero por sí solo, no son objetos.

Otro ejemplo son los operadores.

+0

¿qué pasa con los parámetros que se utilizan en una función ?? .. Ex en Hash [1,2,3,4] son ​​1,2,3,4 objetos? – vireshas

+1

Sí, son Fixnums literales. – hdgarrood

+0

Los operadores también son objetos. Son métodos de objeto (que también son objetos). Pruebe '5.method (: +). Is_a? (Object)' –

4
  1. si
  2. demás
  3. {
  4. }

construcciones del lenguaje en general, etc ...

Creo que casi todo lo demás (incluyendo métodos) son objetos .

+0

nota que pone e impresión son en realidad objeto métodos – Kunok

1

Después de dividir el script en tokens significativos por el lexer, todo es un objeto. Incluyendo clases. Incluso las constantes literales como 1 son objetos. Algunos objetos pueden tener una sintaxis que no sea puramente OO (es decir, azúcar sintáctico), pero eso es principalmente para una fácil manipulación más que cualquier otra cosa. Sin embargo, los bloques no son estrictamente objetos (pero, como alguien dijo, pueden convertirse en uno).

0

En el caso de la asignación de variables, es decir product = 5 * 5 la variable no es un objeto ... así que añadir que a la lista

Cuestiones relacionadas