Ruby: Diferenzas entre revisións

Contido eliminado Contido engadido
Toliño (conversa | contribucións)
+{{Linguaxes de programación}}; WP:COR
Banjo (conversa | contribucións)
Sen resumo de edición
Liña 39:
 
== Semántica ==
Ruby é [[orientado a obxectos]]: tódolos tipos de datos son un obxecto, incluídas as clases e tipos que outras linguaxes definen como primitivas, (como [[enteiro]]s, booleanos, e "nil"). Toda [[función (programación)|función]] é un [[Método (programación orientada a obxectos)|método]]. As variables sempre son referencias a obxectos, non os obxectos mesmos. Ruby soporta [[Herdanza (programación orientada a objetos)|herdanza]] con [[enlace dinámico]], [[mixin]]s e [[singleton|patrónspadróns singleton]] (pertencentes e definidos por unha soa [[Instancia (programación)|instancia]] máis que definidos poa clase). A pesar de que Ruby non soporta [[herdanza múltiple]], as clases poden importar [[Módulo (programación)|módulos]] como mixins. A sintaxe procedural esta soportada, pero tódolos métodos definidos fora do ámbito dun obxecto son realmente métodos da clase Object. Como esta clase é pai de todas as demais, os cambios son visibles para tódalas clases e obxectos.
 
Ruby describiuse coma unha [[linguaxe de programación multiparadigma]]: permite programación procedural (definindo funcións e variables fora das clases facéndoas parte do obxecto raíz Object), con orientación a obxectos, (todo é un obxecto) ou [[Programación funcional|funcionalmente]] (ten funcións anónimas, [[Clausura (informática)|clausuras ou closures]], e [[continuation]]s; tódalas sentenzas teñen valores, e as funcións devolven a última avaliación). Soporta [[Introspección(programación|introspección]], [[Reflexión (informática)|reflexión]] e [[metaprogramación]], ademais de soporte para [[Fío de execución|fíos de execución]] xestionados polo intérprete. Ruby ten [[tipado dinámico]], e soporta [[Polimorfismo (programación orientada a obxectos)|polimorfismo]].
Liña 49:
* catro niveles de ámbito de [[Variable (programación)|variable]]: global, clase, instancia e local.
* [[manexo de excepcións]].
* [[Iterador (patrónpadrón de deseño)|iteradores]] e [[Clausura (informática)|clausuras ou closures]] (pasando bloques de código).
* [[expresión regular|expresións regulares]] nativas similares ás de [[Perl]] a nivel de linguaxe.
* posibilidade de redefinir os operadores (sobrecarga de operadores).