incr Tcl
lenguaje de programación
[incr Tcl] o itcl es una extensión del lenguaje de programación Tcl para darle soporte de programación orientada a objetos. Su nombre hace referencia al operador incremento de Tcl, así como C++ utilizaba el operador de incremento para la extensión de C. La sintaxis de la programación de objetos se inspira mayormente en la de C++.
Ejemplo
editar#ejemplo.tcl
package require Itcl
#Se crea la clase Persona
itcl::class Persona {
private variable apellidos
private variable nombres
private variable edad 18
public variable nacimiento 1984
constructor {vapellidos vnombres} {
set apellidos $vapellidos
set nombres $vnombres
puts "¡Bienvenido, $nombres $apellidos!"
}
method setEdad {vedad} {
set edad $vedad
}
method getEdad {} {
return "$edad"
}
method saludo {lugar} {
puts "¡Buen día, $nombres!"
if {$lugar != ""} {
puts "Nosotros estamos en $lugar"
}
}
method esMayor {} {
expr {$edad>=18}
}
method nombrecompleto {} {
return "$nombres $apellidos"
}
}
#Se crea una instancia de la clase Persona
Persona unainstancia Hernández José
#Se fija la edad como 16 (encapsulamiento de edad)
unainstancia setEdad 16
#Se fija el nacimiento modificando la variable publica nacimiento (sin encapsular)
unainstancia configure -nacimiento [expr 2009 - [unainstancia getEdad]]
#Evalua el resultado del métoco esMayor
if {[unainstancia esMayor]} {
puts "[unainstancia nombrecompleto] es mayor."
} else {
puts "[unainstancia nombrecompleto] es menor, ya que tiene [unainstancia getEdad] años."
}
#Se obtiene el valor de la variable publica nacimiento
puts "[unainstancia nombrecompleto] nació en el año [unainstancia cget -nacimiento]."
#Se invoca al método saludo
unainstancia saludo "la Costa Azul"
# Se destruye la instancia de la clase Persona
itcl::delete object unainstancia
# Se destruye la clase Persona, esta clase ya no estará disponible en adelante
itcl::delete class Persona
Como resultado:
$ tclsh ejemplo.tcl ¡Bienvenido, José Hernández! José Hernández es menor, ya que tiene 16 años. José Hernández nació en el año 1993. ¡Buen día, José! Nosotros estamos en la Costa Azul
Enlaces externos
editar- Sitio oficial Itcl/incr Tcl (en inglés)