Ruby es más flexible, facil de leer y no se repite, por ejemplo si comparamos con Java, Ruby se carga cada vez que añadimos algo dentro de el irb. Mientras que en Java se tiene que poner a cargar cada vez que deseemos er si funciona o no. Eso hace que Java sea más rapido a cargar de golpe todo mientras que en eso Ruby si que es más lento. Eso no es malo, todo tiene sus pros y contras.
Ruby tiene:
- Una sola herencia ( no se repite)
- method overriding (tienes la posibilidad de estar sobrecargando una función que no se encuentra definida en el padre del que heredas)
- namespaces (Un espacio de nombres es un contenedor abstracto en el que un grupo de uno o más identificadores únicos pueden existir.)
- class(estaticos) variables y metodos,
- patterns como los singletons ( (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.)
- duck typing (enfocado a objetos)
!
Ruby NO tiene:
!
-Interfaces (ya que es flexible de tipos), pero mixins permiten secciones estándar de código para ser
incluido y reutilizados en clases. Se permiten múltiples mixins.
- Método de la sobrecarga (pero los métodos pueden tener argumentos opcionales).
Ruby tiene:
- Una sola herencia ( no se repite)
- method overriding (tienes la posibilidad de estar sobrecargando una función que no se encuentra definida en el padre del que heredas)
- namespaces (Un espacio de nombres es un contenedor abstracto en el que un grupo de uno o más identificadores únicos pueden existir.)
- class(estaticos) variables y metodos,
- patterns como los singletons ( (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.)
- duck typing (enfocado a objetos)
!
Ruby NO tiene:
!
-Interfaces (ya que es flexible de tipos), pero mixins permiten secciones estándar de código para ser
incluido y reutilizados en clases. Se permiten múltiples mixins.
- Método de la sobrecarga (pero los métodos pueden tener argumentos opcionales).
Hay que diferenciar enre Arrays, ordered list of elements o cadenas, strings double quotes o dobles comillas objetos, container executung code pipes , traverse, block o tubos o bloques contenedores de codigos de ejecución, value items o items de valor, objetcts, values state u objetos, Integeres o numeros enteros, float o con decimales, class hash o asterisco de clase. Ire añadiendo... :
Ejemplo:
Comida = ["huevos", 21, :champiñones]
nombre del = Ashes["strings", 1nteger, symbol]
main object
def
defincición o metodo
end
cierre del/ de_los comando/s
class
clase o tipo (endtro de la clase escribiremos los atributos) **
object.new
objeto.constructor (new), es decir, cada vez que veamos (.new) es un constructor.
end
if
acción o metodo en caso de..
end
if else
cualquier metodo diferente a los definidos
end
nombre del = Ashes["strings", 1nteger, symbol]
main object
def
defincición o metodo
end
cierre del/ de_los comando/s
class
clase o tipo (endtro de la clase escribiremos los atributos) **
object.new
objeto.constructor (new), es decir, cada vez que veamos (.new) es un constructor.
end
if
acción o metodo en caso de..
end
if else
cualquier metodo diferente a los definidos
end
Arrays [abc, def]
Ashes [] &/or {}
Items(ex.ejemplo de 2 items) abc, def
Strings "abc"
Symbol (unmutable string):abc
Block ||
integers 1 2 3
float 0.001 3.1416 ...
object .abc
object .abc
Otras notaciones.
Dentro de un objeto ... clave=>valor
"Un objeto es un contenedor de datos, que a su vez controla el acceso a dichos datos. Asociados a los objetos está una serie de variables que lo definen: sus atributos. Y también un conjunto de funciones que crean un interfaz para interactuar con el objeto: son los métodos."
Fuente: http://rubytutorial.wikidot.com/clases-objetos
Block sirve para Iterar(Iterating) repetir un comandos en diferentes items.
Dentro de un objeto ... clave=>valor
"Un objeto es un contenedor de datos, que a su vez controla el acceso a dichos datos. Asociados a los objetos está una serie de variables que lo definen: sus atributos. Y también un conjunto de funciones que crean un interfaz para interactuar con el objeto: son los métodos."
Fuente: http://rubytutorial.wikidot.com/clases-objetos
Block sirve para Iterar(Iterating) repetir un comandos en diferentes items.
Los Items pueden ser:
- Objetos, :huevos, :24
- Strings "queso", "24"
- Integers "34, 27"
Los Items si son una lista vienen dentro de ashes,pero si es un solo item a veces no hace falta.
Para añadir items existen comandos y simplemente usando esa notación podemos especificar el item utilizando la notación. Por ejemplo, en el caso de strings puede ser muy util la lista de Strings! muchas veces se puede utilizar la misma notación para añadir intgerers to_i o strings to_s...
**: acerca de class escribiré y traduciré el documento, pero por ahora podeis ver el contenido en ingles aquí:
http://www.tutorialspoint.com/ruby/ruby_object_oriented.htm La guía es una maravilla!
Para añadir items existen comandos y simplemente usando esa notación podemos especificar el item utilizando la notación. Por ejemplo, en el caso de strings puede ser muy util la lista de Strings! muchas veces se puede utilizar la misma notación para añadir intgerers to_i o strings to_s...
**: acerca de class escribiré y traduciré el documento, pero por ahora podeis ver el contenido en ingles aquí:
http://www.tutorialspoint.com/ruby/ruby_object_oriented.htm La guía es una maravilla!
No hay comentarios:
Publicar un comentario